DCL
用户创建
create user '用户名' identified by '密码';
-- 创建用户并赋予密码,此时用户无任何权限
show grants;
-- 查看当前用户权限
权限
- 系统权限:维护数据库权限
- create database
- create table
- create view
- ...
- 对象权限:对数据库对象(表,视图)处理权限
- insert
- update
- delete
- select
- all privileges:全部权限
权限管理
授予权限
-
授予系统权限
grant 对象权限1,对象权限2,... on 数据库对象 to 用户1,用户2,...; -- 数据库对象是指:数据库名.表名形式,若数据库.*则为当前数据库下的所有表,*.*则是所有数据库下的所有表 -- 表级权限 grant 对象权限1(列名称1,列名称2,...),对象权限2(列名称1,列名称2,...),... on 表名 to 用户1,用户2,...; grant 对象权限1,对象权限2,... on 表名(列名称1,列名称2,...) to 用户1,用户2,...; -- 列级权限
-
授予用户对象权限
grant 系统权限1,系统权限2,... to 用户1,用户2,...;
回收权限
-
回收系统权限
revoke 对象权限1,对象权限2,... on 数据库对象 from 用户1,用户2,...; -- 表级权限 revoke 对象权限1(列名称1,列名称2,...),对象权限2(列名称1,列名称2,...),... on 表名 from 用户1,用户2,...; -- 列级权限
-
回收用户对象权限
revoke 系统权限1,系统权限2,... from 用户1,用户2,...;
角色管理
create role '角色名1','角色名2',...;
-- 创建角色
grant 对象权限1,对象权限2,... on 数据库对象 to 角色1,角色2,...;
-- 赋予角色权限
grant 角色 to 用户1,用户2,...;
-- 赋予用户角色
revoke role from 用户;
-- 回收用户角色
revoke 对象权限1,对象权限2,... on 数据库对象 to 角色1,角色2,...;
-- 回收角色权限
drop role '角色名1','角色名2',...;
-- 删除角色
Comments NOTHING