mysql用户与权限管理,DBA必备技能。


Mysql的权限验证信息存储在Mysql数据库中,由数据库默认进行安装。
1.user 确定哪些用户可以从哪台主机登录到数据库服务器。
①在验证阶段,user只是负责为用户授权访问mysql服务器,确定用户是否超出了每小时被允许的最大连接数,并确定用户是否超出了最大并发连接数。
②在请求授权阶段,user表确定允许访问服务器的用户是否被赋予操作Mysql服务器的全局权限。
③唯一一个存储与管理Mysql服务器相关的权限的权限表。
2.db.确定哪些用户可以访问哪些数据库。
db表用于针对每个数据库为用户赋予权限。

3.host.db表的扩展,提供另外一些主机名,用户可以从这些主机连接数据库服务器。
host表仅在db表的Host字段为空时起作用。

4.tables_priv.确定哪些用户可以访问特定数据库的特定表
tables_priv表用于存储表的特定用户权限

5.columns_priv.确定哪些用户可以访问特定表的特定列。
columns_priv表负责设置字段特定的权限。

6.proces_priv.控制存储过程的作用。
proces_priv表控制存储过程和函数的使用。

102854861.jpg

GRANT和REVOKE命令用来管理访问权限。如前所述,还可以用来创建和删除用户,但在MySQL 5.0.2中可以利用CREATE USER和DROP USER命令更容易地实现这些任务。GRANT和REVOKE命令对于谁可以操作服务器及其内容的各个方面提供了多粒度控制,从谁可以关闭服务器,到谁可以修改特定表字段中的信息都能控制。表29-7列出了使用这些命令可以授予或撤回的所有权限。

提示
虽然使用标准SQL语法修改mysql表已被弃用,但并不阻止你这样做。只是要记住,对这些表做任何修改后必须紧接着执行flush privileges命令。因为这是一种过时的管理用户权限的方法,所以不再过多赘述。更多信息请参见MySQL文档。
ALL PRIVILEGES
影响除WITH GRANT OPTION之外的所有权限

ALTER
影响ALTER TABLE命令的使用

ALTER ROUTINE
影响创建存储例程的能力

CREATE
影响CREATE TABLE命令的使用

CREATE ROUTINE
影响更改和弃用存储例程的能力

CREATE TEMPORARY TABLES
影响CREATE TEMPORARY TABLE命令的使用

CREATE USER
影响创建、弃用;重命名和撤销用户权限的能力

CREATE VIEW
影响CREATE VIEW命令的使用

DELETE
影响DELETE命令的使用

DROP
影响DROP TABLE命令的使用

EXECUTE
影响用户运行存储过程的能力

EVENT
影响执行事件的能力(从MySQL5.1.6开始)

FILE
影响SELECT INTO OUTFILE和LOAD DATA INFILE的使用

GRANT OPTION
影响用户委派权限的能力

INDEX
影响CREATE INDEX和DROP INDEX命令的使用

INSERT
影响INSERT命令的使用

LOCK TABLES
影响LOCK TABLES命令的使用

PROCESS
影响SHOW PROCESSLIST命令的使用

REFERENCES
未来MySQL特性的占位符

RELOAD
影响FLUSH命令集的使用

REPLICATION CLIENT
影响用户查询从服务器和主服务器位置的能力


使用grant和revoke注意要点:
1.可以为不存在的数据库授权。
2.如果grant命令标识的用户不存在,它将被创建。
3.如果创建一个用户而没有包括identified by子句,则不需要密码就能登录。
4.如果现有用户被授予新权限,并且在grant命令中使用了identified by子句,则该用户的旧密码将被新密码代替。
5.表级grant只支持如下权限类型:alter、create、createview、delete、drop、grant、index、insert、references、select、show view、update.
6.列级grant只支持以下权限类型:insert、select、update.
7.在grant命令中引用数据库名和主机名时,支持_和%通配符。因为_字符在Mysql数据库名中也是合法字符,所以如果在grant中用到,需要用反斜线进行转义。
8.如果希望创建和删除用户,而且运行的是Mysql 5.0.2或更高版本,可以考虑使用create user和Drop user命令。
9.不能引用*.*来删除某用户对所有数据库的权限。相反,必须用单独的revoke命令逐个显式地引用每一个权限。