免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1965 | 回复: 0

MySql 091224:MySQL的权限管理 [复制链接]

论坛徽章:
0
发表于 2009-12-24 18:26 |显示全部楼层


  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4



/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:普通表格;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}

  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4




  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4



/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:普通表格;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}
MySql 091224:MySQL的权限管理
@ http://zcatt.cublog.cn
1.   
flush-logs
mysqladmin flush-logs

flush-logs对于三种log方式,general_log,
slow_query_log, 和binary_log的处理不尽相同
1)
general_log和slow_query_log先关闭log文件,再重新打开log文件

2)
binary_log先关闭log文件, 再使用新序号为后缀的文件名打开新log文件

3)
err_log处理类同2),但会使用-old后缀命名旧errlog文件。

general_log和slow_query_log应当先mv,再flush-logs.


2.   
MySQL中的权限
按照作用的对象和范围,权限可分为3种
1)
管理权限,这种权限是全局的,用于整个mysql server的。
2)
数据库权限,这种权限是针对特定的一个,多个数据库的。
3)
管理数据库部件的权限,针对的是颗粒度更小的对象,例如数据库的table, index, view等。
下表摘自mysql ref
manual.


  
  Privilege
  
  
  Column
  
  
  Context
  


  
  
CREATE
  
  
  Create_priv
  
  
  databases, tables, or indexes
  


  
  
DROP
  
  
  Drop_priv
  
  
  databases or tables
  


  
  GRANT
  OPTION
  
  
  Grant_priv
  
  
  databases, tables, or stored routines
  


  
  
REFERENCES
  
  
  References_priv
  
  
  databases or tables
  


  
  
EVENT
  
  
  Event_priv
  
  
  databases
  


  
  
ALTER
  
  
  Alter_priv
  
  
  tables
  


  
  
DELETE
  
  
  Delete_priv
  
  
  tables
  


  
  
INDEX
  
  
  Index_priv
  
  
  tables
  


  
  
INSERT
  
  
  Insert_priv
  
  
  tables
  


  
  
SELECT
  
  
  Select_priv
  
  
  tables
  


  
  
UPDATE
  
  
  Update_priv
  
  
  tables
  


  
  CREATE
  TEMPORARY TABLES
  
  
  Create_tmp_table_priv
  
  
  tables
  


  
  LOCK
  TABLES
  
  
  Lock_tables_priv
  
  
  tables
  


  
  
TRIGGER
  
  
  Trigger_priv
  
  
  tables
  


  
  CREATE
  VIEW
  
  
  Create_view_priv
  
  
  views
  


  
  SHOW
  VIEW
  
  
  Show_view_priv
  
  
  views
  


  
  ALTER
  ROUTINE
  
  
  Alter_routine_priv
  
  
  stored routines
  


  
  CREATE
  ROUTINE
  
  
  Create_routine_priv
  
  
  stored routines
  


  
  
EXECUTE
  
  
  Execute_priv
  
  
  stored routines
  


  
  
FILE
  
  
  File_priv
  
  
  file access on server host
  


  
  CREATE
  USER
  
  
  Create_user_priv
  
  
  server administration
  


  
  
PROCESS
  
  
  Process_priv
  
  
  server administration
  


  
  
RELOAD
  
  
  Reload_priv
  
  
  server administration
  


  
  REPLICATION
  CLIENT
  
  
  Repl_client_priv
  
  
  server administration
  


  
  REPLICATION
  SLAVE
  
  
  Repl_slave_priv
  
  
  server administration
  


  
  SHOW
  DATABASES
  
  
  Show_db_priv
  
  
  server administration
  


  
  
SHUTDOWN
  
  
  Shutdown_priv
  
  
  server administration
  


  
  
SUPER
  
  
  Super_priv
  
  
  server administration
  


  
  ALL
  [PRIVILEGES]
  
  
   
  
  
  server administration
  


  
  
USAGE
  
  
   
  
  
  server administration
  



账户的权限保存在mysql的user, db, host, tables_priv,
columns_priv和procs_priv
tables中。

1) user table决定是否允许(host, user)来的链接,如果允许,则对应的权限列指定了user的全局权限,适用于server中的所有db.

2)db table决定了(host,user)可以访问的db,权限列描述了可以在这个db上执行的操作。

3) host table用于配合table表处理允许 某个用户从多个host中访问 的问题。

4) tables_priv和columns_priv tables用于表和列级别的管理,是更细颗粒的。

5)procs_priv table用于stored routines.

mysqld启动时是将grant tables读入内存使用的,因此,变更privilege后应当flush privileges,或执行mysqladmin flush-privilegesmysqladmin reload.

查看某个用户的权限:
show grants for 'root'@'localhost';


3.   
MySQL的账户Account
1)账户是由(username,host)标识的。
形式:
'user_name'@'host_name'
注意那个单引号(也可用 ` " )。不产生歧义时,单引号可以省略。例如使用特殊字符时,就需要使用单引号。
不带host_name的acount,等同 'user_name'@'%'
空白的user_name是匿名用户,等同''@'localhost'
host_name中可以使用通配符'%'和'_'
对于IP形式的host,可以使用host_ip/netmask形式指定, 但netmask只能指定8, 16,24, 或32bit的掩码。例如,
'david'@'192.58.197.0/255.255.255.0'

4.访问控制Access Control
1) stage 1,
使用user_name,
host_name, 和password判断是否许可访问

2)stage 2, 请求验证(request verification)。根据user,db,host,tables_priv,columns_priv和procs_priv表判断操作是否允许。判断逻辑可以描述为,

global privileges

OR (database privileges
AND host privileges)

OR table privileges
OR column privileges
OR routine privileges









本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8866/showart_2130058.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP