数据库—安全性控制DCL
授予数据库权限
这里的用户是指数据库DBMS中创建的用户,而不是程序中的账户用户。
- 授予某个/多个表的某一个/多个权限
- public代表所有用户
grant select 表名 to public
就代表授予所有用户对于这个表的select权限。以此类推,其他权限也一样。
//给用户授予查询某个表的权限
grant select
on 表名
to 用户1,用户2,...
//给用户授予更新某个表的权限
grant update
on 表名
to 用户1,用户2,...
//给用户授予某个表的插入信息权限
grant insert
on 表名
to 用户1,用户2,...
//给用户授予某个表的增加删除修改信息权限
grant insert,delete,update
on 表名
to 用户1,用户2,...
//给用户授予多个表的增加删除修改信息权限
grant insert,delete,update
on 表名1,,表2,...
to 用户1,用户2,...
//授予有关于这个表的其中一个或者几个属性的权限给这个用户
grant delete(属性1,,属性2,...)
on 表名
to 用户1,用户2,...
//还能混合授予
grant delete(属性1,属性2...),update,...
on 表名
to 用户1,用户2,...
.
.
.
- 授予所有权限,all privileges(其实与上面的意思都一样,只是将权限范围修改一下罢了)
//授予有关于某个/多个表的所有权限给这个用户
grant all privileges
on 表1,表2,...
to 用户1,用户2,...
//授予有关于这个表的其中一个或者几个属性的所有权限给这个用户
grant all privileges(属性1,属性2...)
on 表名
to 用户1,用户2,...
.
.
.
授予用户能够授予其他用户的权限
只需要在上述代码的后面加上with grant option即可,下面只用一个例子
- 注意:比如授予select权限给用户后他继续授予其他用户的时候只能够授予select或者比这个更小的权限比如只能够select某个列,其他权限也一样的规定。
grant select
on 表名
to 用户1,用户2,...
with grant option
收回权限
- 如果想要收回用户的某个权限,并且这个用户有权限继续授予别人权限,然后这用户也确实授予了其他用户权限的时候,这个用户的权限一旦被收回,他授予其他人的都一同被收回(我觉得这个设计的挺好的,非常贴合符合现代社会思维)
//收回所有权限
//收回用户对表的权限
revoke grant select/update/...权限范围
on 表1,表2,....
from 用户1,用户2,...
//收回用户对表中某个列的权限
revoke grant elect/update/...权限范围(属性1,属性2...)
on 表名
from 用户1,用户2,...
.
.
.
数据库的权限(特殊)
- 授予该用户在这数据库中建立表的权限
grant createtab
on database 数据库名
to 用户,...
- 回首数据库创建表权限
revoke createtab
from 用户,...
本文来自博客园,作者:竹等寒,转载请注明原文链接。