Mysql基础篇-DCL(不用重点掌握)
- DCL 介绍: DCL是数据控制语言,用来管理数据库用户,控制数据库的访问权限
- 用户和数据库不一样噢:因为本身服务器的数据库为用户的登录设置各种权限。VIP。。。。
- 开发人员不用重点掌握
DCL-管理用户
查询用户
use mysql;
select * from user;
DataGrip的mysql数据库中有user表,里面可以直接检查到
创建用户
create user ‘用户名‘@‘主机名’ identified by ‘密码’;
创建完后 可以用cmd输入:
mysql -u ‘用户名’ -p
enter password: 。。。。
就可以了
1
2
3
4
5-- 创建用户itcast , 只能够在当前主机localhost访问,密码123456
create user 'itcast'@'localhost' identified by '123456' ; # 再查询用户表
# 该用户只是创建但是并没有任何权限,访问不了其他的数据库
-- 创建用户heima, 在任意主机上访问该数据库, 密码123456
create user 'heima' @'%' identified by '123456';修改用户密码
alter user ‘用户名‘@‘主机名’ identified with mysql_native_password by ‘新密码’;
删除用户
drop user ‘用户名‘@‘主机名’;
1
drop user 'itcast'@'localhost';
注意:
- 主机名可以用 % 通配
- 这类SQL开发人员操作很少,主要是数据库管理员使用
DCL- 权限控制
权限 | 说明 |
---|---|
all,all privileges | 所有权限 |
select | 查询数据 |
insert | 插入数据 |
update | 修改数据 |
delete | 删除数据 |
alter | 修改表 |
drop | 删除数据库/表/字段 |
create | 创建数据库/表 |
查询权限
show grants for ‘用户名‘@’主机名’;
1
2
3-- 查询某个用户的权限
show grants for 'heima' @'%';
-- 输出 GRANT USAGE ON *.* TO `heima`@`%`授予权限
grant 权限列表 on 数据库名.表名 to ‘用户名‘@’主机名’;
1
2
3-- 授予权限->把root用户的权限给了heima用户
grant all on root.* to 'heima' @'%' ;
-- 输出 GRANT ALL PRIVILEGES ON `root`.* TO `heima`@`%`撤销权限
revoke 权限列表 on 数据库名.表名 from ‘用户名‘@’主机名’;
1
2
3-- 撤销权限 -> 把heima用户中的root权限全部撤销 ()
revoke all on root.* from 'heima' @'%';
-- GRANT USAGE ON *.* TO `heima`@`%`
注意:
- 多个权限之间,使用逗号分隔
- 授权时,数据库和表名可以使用 * 通配,代表所有 -> * . * 代表超级管理员哈哈哈哈~~
- ‘heima’ 一开始权限设置是 %
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Echin の 博客!