数据库之授权机制

授权机制

通常授权有两种方式,分别是直接方式和间接方式

直接方式 是直接地授权给某个用户;
间接方式 是指先授权给某个角色(role),然后将该角色赋予一个或多个用户。

1.授予操作权限
  授予操作权限的语法格式如下:

GRANT {object_privilege|ALL [PRIVILEGES]}[column, …)],…
  on_object_clause TO grantee_clause
  [WITH GRANT OPTION] [WITH HIERARCHY OPTION];

其中:
  GRANT,TO:为授权谓词。
  object_privilege:可以选择上节列表中表示模式对象权限的谓词当然不同的DBMS可能略有差别。
  ALL [PRIVILEGES]:指定该选项则指授予用户系统操作权限表中所有的权限。
  (…)省略号:指明一条授权语句可以组合不同的权限一次性授予用户。
  [(column, …)]:可选语句只有当授权假定的操作对象是表或视图等时才可选用,表示具体授权操作这些表的哪些列,如果未指定该选项则默认为所有的列,对列操作权限授权时,仅能授予INSERT、UPDATE、REFERENCES这些权限。
  on_object_clause:指明具体哪个模式对象,格式为[schema.]object.
  grantee_clause:为授权子句。
  [WITH GRANT OPTION]:该选项指明被授权的用户将有再授权给别的用户的能力。
  [WITH HIERARCHY OPTION]:该选项指明被操作的模式对象的所有子对象也将被授权用户有权限操作。
  例如:

GRANT SELECT ON emp TO user001;

该语句将表emp的SELECT权限授予了用户user001.
  
2.取消操作权限

取消操作权限的语法格式如下:

REVOKE {object_privilege|ALL [PRIVILEGES]}[column, …)],…
  on_object_clause FROM grantee_clause
  [CASCADE CONSTRAINTS] [FORCE];

[CASCADE CONSTRAINTS]:只有在取消REFERENCES和ALL PRIVILEGE权限时,才可选用该选项,使用该选项后,将删除原来定义的在引用权限之上的所有相关引用约束。
  [FORCE]:只有在取消EXECUTE权限时,才选用该选项,使用该选项后将执行权限取消的同时,如果其中依存了许多表及其他对象的数据,将被置为不可用或无效。
  例如,

REVOKE SELECT ON emp FROM user001;

该语句将用户user001对表emp的SELECT权限取消。

你可能感兴趣的:(软件设计知识点之操作系统)