目录
1.权限表
通过网络连接服务器的客户对MySQL数据库的访问由权限表内容来控制。这些表位于MySQL数据库中,并在第1次安装MySQL的过程中初始化。
权限表共有6个表:user、db、host、tables_priv、 columns_priv和procs_priv。
2.MySQL权限系统的工作原理
- 为了确保数据库的安全性与完整性,系统并不希望每个用户可以执行所有的数据库操作。当MySQL允许一个用户执行各种操作时,它将首先核实用户向MySQL服务器发送的连接请求,然后确认用户的操作请求是否被允许。
- MySQL的访问控制分为两个阶段:
①连接核实阶段
②请求核实阶段
3.管理用户
(1)创建用户
CREATE USER user[IDENTIFIED BY [PASSWORD]'password']
[,user[IDENTIFIED BY [PASSWORD]'password']][,…];
(2)删除用户
DROP USER user;
(3)修改用户名
RENAME USER old_user TO new_user
[, old_user TO new_user] [,…];
(4)修改密码
ALTER USER user IDENTIFIED BY 'password';
(5)例子
-- 创建一个用户user1
create user 'user1'@'localhost' identified by '123456';
-- 同时创建两个用户user2和user3
create user 'user2'@'localhost' identified by '123456',
'user3'@'localhost' identified by '654321';
-- 删除用户user1
drop user 'user1'@'localhost';
-- 修改用户user2的用户名,修改为user
rename user 'user2'@'localhost' to 'user'@'localhost';
-- 修改用户user3的密码,修改为“123456”
alter user 'user3'@'localhost' identified by '123456';
4.权限管理
(1)给用户授予权限
GRANT 权限 ON 表名 TO 用户;
(2)回收用户的权限
REVOKE 权限 ON 表名 FROM 用户;
(3)查看用户当前的权限
show grants for 用户;
(4)例子
-- 向用户user3授予查询emp表的权限
grant select on emp to 'user3'@'localhost';
-- 查看user3的权限
show grants for 'user3'@'localhost';
-- 回收user3查询emp表的权限
revoke select on emp from 'user3'@'localhost';