一、用户权限(使用Navicat创建用户和分配权限)
1、权限结构:全局/数据库/表/列权限
2、主要权限(全部权限-ALL):
权限 | 权限级别 | 权限说明 |
---|---|---|
CREATE | 数据库、表、索引 | 创建数据库、表、索引 |
CREATE VIEW | 视图 | 创建视图 |
DROP | 数据库、表 | 删除创建数据库、表 |
UPDATE | 表 | 更新表 |
INSERT | 表 | 插入数据于表 |
DELETE | 表 | 删除表数据 |
ALTER | 表 | 更改表,比如,添加字段、索引 |
SELECT | 表 | 查询 |
INDEX | 表 | 索引 |
EXECUTE | 存储过程 | 执行存储过程 |
3、权限分布:
二、使用Navicat客户端工具创建用户和分配权限:
(1) 全局权限:
(2) 数据库权限:
(3) 表权限:
(4)列权限:
三、mysql分配权限相关命令(授权grant、查看权利show grants、撤销权利revok、删除用户drop user):
1、赋予权限命令 grant:
■ 语法:
grant 权限
on 数据库对象
to 用户 identified by '密码'
with grant option;
(1) 当已经存在用户(例如shan)时,赋予查询权限在数据库mysqldemo中的表t_stu(数据库对象
)到用户shan
语法:grant select on mysqldemo.t_stu to shan@localhost;
grant 权限
on 数据库对象
to 用户;
(2) 当用户不存在时(例:创建用户shan,密码是1),赋予查询权限在数据库mysqldemo中的表t_stu(数据库对象
) 到用户shan
语法: grant select on mysqldemo.t_stu to shan@localhost identified by '1';
grant 权限
on 数据库对象
to 用户 identified by '密码';
(3) 当用户不存在时, 将授权GRANT OPTION 的权利也赋给当前用户(例:创建用户shan,密码是1),赋予查询权限在数据库mysqldemo中的表t_stu(数据库对象
) 到用户shan
语法: grant select on mysqldemo.t_stu to shan@localhost identified by '1' with grant option;
grant 权限
on 数据库对象
to 用户 identified by '密码'
with grant option;
✿ 分配权限的细节:
■ shan@localhost:shan用户,是只能在本地主机访问。
□ 用户账号:user@host,其中host的值,% 从任意地址访问, 10.250.8.% 只能访问特定的网段, 192.168.1.8 只能访问特定的ip。
localhost: 本机地址。
□ 查看电脑ip命令:ipconfig
2、查看用户的权限命令 show grants:
(1) 查看当前用户权限: show grants;
(2) 查看某个用户权限: show grants for 用户账号;
例如:在cmd控制台,以root 用户进入mysql,然后查看lucy的权限: show grants for lucy@localhost;
3、回收权限命令 revoke:
■ 语法:
revoke 权限
on 数据库对象
from 用户;
例如:revoke select on . from lucy@localhost;
□ 注意:使用revoke 回收所有权限,则操作者必须是拥有mysql数据的全局create user或 update 权限。
4、删除用户账号权限 drop user:
■ 语法:drop user 用户账号;
例如:drop user lucy@localhost;
若主机是%,语法记得加上 '' 例如:drop user lucy@'%';