🎄 管理用户
- 📢 用来管理数据库用户、控制数据库的访 问权限
⭐ 查询用户
- 📢 mysql数据库中的user表中,存放了当前数据库中所有的用户和用户的权限
sql
use mysql;
select * from user;
- 📢 其中Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。
⭐创建用户
- 📢 主机名可以使用% 通配。
sql
create user '用户名'@'主机名' identified by '密码';
⭐修改用户密码
sql
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
⭐删除用户
sql
drop user '用户名'@'主机名';
⭐案例
☀ 创建用户itcast,只能够在当前主机localhost访问, 密码itcast;
- 📢 但是没有分配权限会导致,查询不了任何数据库。
sql
create user 'itcast'@'localhost' identified by 'itcast';
☀ 创建用户remote, 可以在任意主机访问该数据库, 密码remote;
sql
create user 'remote'@'%' identified by 'remote';
☀ 修改用户remote的访问密码为1234;
sql
alter user 'remote'@'%' identified with mysql_native_password by '1234';
☀ 删除itcast@localhost 用户
sql
drop user 'itcast'@'localhost';
🎄 权限控制
- 📢 权限控制中每个不同数据库的权限可以分别单独设置。
⭐常用权限
权限 | 说明 |
---|---|
ALL, ALL PRIVILEGES | 所有权限 |
SELECT | 查询数据 |
INSERT | 插入数据 |
UPDATE | 修改数据 |
DELETE | 删除数据 |
ALTER | 修改表 |
DROP | 删除数据库 / 表 / 视图 |
CREATE | 创建数据库 / 表 |
⭐查询权限
sql
show grants for '用户名'@'主机名';
⭐授予权限
- 📢 多个权限之间,使用逗号分隔
- 📢 授权时, 数据库名和表名可以使用* 进行通配 ,代表所有。
sql
grant 权限列表 on 数据库.表名 to '用户名'@'主机名';
⭐撤销权限
sql
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
⭐案例
☀ 查询'remote'@'%' 用户的权限
sql
show grants for 'remote'@'%' ;
☀ 授予'remote'@'%' 用户test数据库所有表的所有操作权限
sql
grant all on test.* to 'remote'@'%';
☀ 撤销'remote'@'%' 用户的test数据库的所有权限
sql
revoke all on test.* from 'remote'@'%';