数据库—安全性控制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
on1,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/...权限范围
on1,2,....
from 用户1,用户2,...

//收回用户对表中某个列的权限
revoke grant elect/update/...权限范围(属性1,属性2...)
on 表名
from 用户1,用户2,...
.
.
.

数据库的权限(特殊)

  • 授予该用户在这数据库中建立表的权限
grant createtab
on database 数据库名
to 用户,...
  • 回首数据库创建表权限
revoke createtab
from 用户,...
posted @ 2023-06-29 00:06  竹等寒  阅读(3)  评论(0编辑  收藏  举报  来源