一、授权
-
创建用户
create user 'user01'@'192.168.1.2' identified by '123qaz!@#QAZ';
-
授予权限
不同级别授权有所不同
-
全局
grant select on *.* to 'user01'@'192.168.1.2'
-
库级
grant insert on test.* to 'user01'@'192.168.1.2'
-
表级
grant update on test.student to 'user01'@'192.168.1.2'
-
列级
grant references (class_id,city_id) on test.student to 'user01'@'192.168.1.2';
-
二、取消权限
修改grant和to两个关键字就可以授权变成取消权限,其他都不变。如下取消列级权限:
revoke references (class_id,city_id) on test.student from 'user01'@'192.168.1.2';
三、常用权限释义
权限 | 级别 | 说明 |
---|---|---|
ALL [PRIVILEGES] | 全局 | 除GRANT OPTION外,所有权限。 |
ALTER | 表 | 修改表结构。 |
ALTER ROUTINE | 库 | 修改或删除存储过程或函数。 |
CREATE | 表 | 创建库和表。 |
CREATE ROLE | 全局 | 创建角色。 |
CREATE ROUTINE | 库 | 创建或删除存储过程或函数。 |
CREATE TABLESPACE | 全局 | 允许使用创建,更改或删除表空间和日志文件组。 |
CREATE TEMPORARY TABLES | 库 | 创建临时表。 |
CREATE USER | 全局 | 创建用户。 |
CREATE VIEW | 表 | 创建视图。 |
DELETE | 表 | 删除表行数据。 |
DROP | 表 | 删除库、表和truncate table t_name。 |
DROP ROLE | 全局 | 删除角色。 |
EVENT | 库 | 创建、修改、删除和查看活动计划(定时器)。 |
EXECUTE | 库 | 执行存储过程或函数。 |
FILE | 全局 | 读写文件等权限。 |
GRANT OPTION | 表 | 授予或回收权限。 |
INDEX | 表 | 创建或删除索引。 |
INSERT | 列 | 插入数据。 |
LOCK TABLES | 库 | 写锁。锁表后还可以读。 |
PROCESS | 全局 | 查看线程信息。 |
PROXY | 全局 | 可以冒充另一个用户。 |
REFERENCES | 列 | 外键。 |
RELOAD | 全局 | 执行flush、refresh、reload等命令。 |
REPLICATION CLIENT | 全局 | 查看从库状态信息。 |
REPLICATION SLAVE | 全局 | 复制主库权限。 |
SELECT | 列 | 查询数据。 |
SHOW DATABASES | 全局 | 查看数据库列表。 |
SHOW VIEW | 表 | 执行SHOW CREATE VIEW view_name查看视图详情。 |
SHUTDOWN | 全局 | 关闭或重启MySQL。 |
SUPER | 全局 | 拥有很多权限,一般不授予用户。将来新版本可能会删除。 |
TRIGGER | 表 | 创建、删除、执行或查看表的触发器。 |
UPDATE | 列 | 修改数据。 |
USAGE | 全局 | 连接(登陆)权限,创建用户系统自动授予。 |
-
参考
-
特别说明
大多数情况,范围小的权限可以授予大范围反过来则不行,例如表权限可以授予但全局不能授予表,ALL和USAGE除外。可以通过观察mysql库中的user、db、tables_priv、columns_priv等表的权限列不难理解。