本文共 1963 字,大约阅读时间需要 6 分钟。
用户帐户组成
用户名+主机名,即username@hostname,如repluser@'172.16.%.%'
MySQL的权限类别
管理类
1 2 3 4 5 6 7 8 9 10 11 | create temporary tables # 允许创建临时表 create user # 允许create,drop,rename帐户 file # 允许读写文件,如导入导出数据库 lock tables # 允许锁表 process # 允许使用show processlist命令 reload # 允许使用flush和reset权限 replication client # 允许查询复制集的从服务器 replication slave # 可作为复制从服务器 show database # 显示数据库,默认存在此权限 shudown # 关闭mysqld服务器 super # 其它管理类权限 |
库级别和表级别
1 2 3 4 5 6 7 8 9 10 11 | alter alter routine create # 创建表和库 create routing create view delete drop execute grant option # 转赠管理权限 index show view |
数据操作类(表级别)
1 2 3 4 | select insert update delete |
字段级别类
1 2 3 | select (col1,…) update (col1,…) insert (col1,…) |
所有权限
1 | all [privileges] |
跟用户授权相关的表:都在mysql数据库中
1 2 3 4 5 6 | db # 库级别权限 host # 主机级别权限,已废弃 tables_priv # 表级别权限 columns_priv # 列级别的权限 procs_priv # 存储过程和存储函数相关的权限 proxies_priv # 代理用户权限 |
用户帐号管理
1 2 3 4 5 6 7 8 | create user # 创建用户 语法:create user Username@Hostname [identified by ‘’]; show grants for ‘testuser@172.16.%.%’; # 显示权限 drop user # 删除用户 rename user # 重命名用户 rename user ‘testuser’@’172.16.%.%’ to ‘tuser’@’172.16.%.%’ set password # 给用户设置密码 set password [ for Username] = password(‘’); |
用户权限管理
grant:授权
1 2 3 4 5 6 7 8 9 10 | 语法:grant Priv_Type on [Object_Type] Priv_Level to Username@Hostname [identified by ‘Password’] [require SSL] [with With_Option,…] Priv_Type # 权限类别,可选参数有all,select,update,replication slave等 Object_Type # 授权对象,参数有table | function | procedure,默认为table Priv_Level # 授权级别,参数有 * | *.* | db_name.* | db_name.tbl_name | tbl_name | db_name.routing_name With_Option # 附加选项 ===grant option # 赋予授权权限,即可将自身的权限再赋予其它用户 ===max_queries_per_hour # 设置最大查询频率 ===max_updates_per_hour # 设置最大更新频率 ===max_connections_per_hour # 设置最大连接速率 ===max_user_connections # 设置单来源IP最大连接数 |
revoke:取消授权
1 2 | 语法:revoke Priv_Type on [Object_Type] Priv_Level from Username@Hostname # 如:revoke all privileges,grant option from Username@Hostname |