woxio770 发表于 2018-9-23 08:19:13

oracle权限一则

  oracle的权限分为系统权限与对像权限两种.系统权限主要用于数据库的管理任务,权利比较大,
  而对像权限主要用于数据库内的对像,如表等。这里只记录授权与回收的SQL方法。
  系统权限授权:grant create session/dba to a ;
  对像权限授权:grant select on sys.anran to a ;
  这里有两个选项with admin option/with grant option,其实功能差不多,只是一个用在系统
  权限授权,另一个用在对像权限授权。带有这两种选择的grantee(被授权者)有授予其他人该权限的
  能力。
  需要什么权限才可以给别授权呢?前面是一种情况,带有with admin option/with grant option选项的grantee.
  还有一种情况是:对于系统权限来说拥有GRANT ANY PRIVILEGE权限的grantee(如果是授予角色[grant
  a_role to a],则是拥有GRANT ANY ROLE权限的grantee,这里可以把角色理解为一种系统权限的)有权grant。
  对于对像权限来说是拥有GRANT ANY OBJECT PRIVILEGE权限的grantee。
  系统权限回收:revoke create session from a;
  对像权限回收:revoke select on sys.anran from a;
  语法基本相同,但revoke在回收系统权限时没有cascade功能,而收回对像权限时却是一插到底。
  比如:a授权给用户b系统权限带有with admin option,b又授权给用户c该权限,当用户a从用户b收回权限时,
  并不会收回用户c的权限,有点覆水难收的意思,但如果是对像权限却会回收C的权根.
  需要什么权限才可以收回权限呢?对于系统权限带有with admin option选项的grantee,当然可以,无论权限
  是否是他亲自授予。但拥有GRANT ANY PRIVILEGE权限的人却没有这个能力。但有一个例外拥有GRANT ANY ROLE 权限的人可以revoke any role。
  对于对像权限带有with grant option选项的grantee,当然可以,但是权限必须是他亲自授予的。另外拥有
  GRANT ANY OBJECT PRIVILEGE 权限的grantee也具有此能力。
  哎呀,真够头大的。

页: [1]
查看完整版本: oracle权限一则