DCl 语句
数据库控制 controller
数据库的用户
root是超级管理员用户,很容易引发由于误操作所导致的数据不安全问题
查看mysql 数据库的mysql 数据库 user 表 存储了mysql 数据库所有的用户
新建用户语法
create user 'zhangsan'@'localhost';
# 创建没有密码的账户 zhangsan , 允许在 本机登录
create user 'zhangsan'@'%';
# 创建没有密码的账户 zhangsan , 允许在任何主机登录
create user 'lisi'@'localhost' identified by '456789'
# 创建密码为456789 的账户 lisi
查看 mysql 中的 user 表, 更够发现 新建用户的权限 全部为N
新建用户甚至 无法进入 emp 数据库
授权命令
给已存在的用户 授予 相应权限
GRANT语句可实现创建用户同时授权或为已存在的用户授权
grant 权限名称 on 数据库.表名 to 用户名@地址
创建用户同时授权
grant 权限名称 on 数据库.表名 to 用户名@地址 identified by 密码
# 在创建用户的同时授权
授权, 并指定 权限的可传递性
grant 权限名称 on 数据库.表名 to 用户名@地址 with grant option
# with grant option 被授权的用户, 拥有权限的传递功能
常用权限名称
create
drop
insert
delete
select
update
alter
# 想要赋予多个权限 书写多个权限名称 使用 逗号 隔开
# 如果想要授予所有权限 可以使用 all
# 给emp数据库的所有表 emp.*
# 给所有数据库的所有表通配符表达式 *.*
给’lisi’ 授权 可以查看 emp 数据库的 emp 表
grant select on emp.emp to 'lisi'@'localhost';
给’lisi’ 授权 可以更改和删除 emp 数据库的 emp 表
grant update,delete,insert on emp.emp to 'lisi'@'localhost';
授予所有权限
grant all on *.* to 'lisi'@'localhost';
创建 ‘wangwu’ 用户, 并授权
grant select on emp.emp to 'wangwu'@'%' identified by '123456';
撤销授权命令
# revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
撤销 lisi的 删除权限
revoke delete on emp.emp from