1、 权限分配:
GRANT 权限 TO 用户/角色
例1:将对hr用户下employee表的访问权限赋给用户SCOTT
GRANT SELECT ON hr.employee TO scott;
例2:将角色CONNECT分配给用户SCOTT
GRANT CONNECT TO scott
2、 权限回收:
REVOKE 权限 FROM 用户/角色
例1:收回用户scott对于hr用户employee表的访问权限
REVOKE hr.employee FROM scott;
例2:收回用户scott的CONNECT角色
REVOKE CONNECT FROM scott;
权限继承与回收
1、情景模拟:Oracle总部拥有对于Oracle产品的管理权限,Oracle总部赋予Oracle中国管理中国境内的经营事宜,如果Oracle中国需要二次分配这种权限,可以在总部赋予权限的时候,使用WITH ADMIN OPTION(系统权限继承)/WITH GRANT OPTION(对象权限继承)
例:SYS 赋予用户scott创建表的权限,然后scott可以赋予其他用户创建表的权限
SOL>CONN SYS
GRANT CREATE TABLE TO scott WITHADMIN OPTION;
说明:
CREATE TABLE属于系统权限,使用关键字WITH ADMIN OPTION赋予权限继承;
此时,SCOTT用户可以对于其他任意用户赋予创建表的权限
SQL>CONN SCOTT
GRANT CREATE TABLE TOtest;
如果是对象权限的继承则需要使用WITHGRANT OPTION
例:将对hr用户下employee表的访问权限赋给用户SCOTT,SCOTT用户可以继承
SQL>CONN hr
GRANT SELECT ON hr.employee TO scott WITH GRANT OPTION;
CONN scott
GRANT SELECT ONhr.employee TO test; --scott用户将权限二次分配给test用户;
2、继承权限回收
回收权限时,对于系统权限而言,不会回收WITH ADMIN OPTION分配的子权限;
对象权限则会级联回收,比如用户scott用户对hr用户下employe表的访问权限,scott用户又将访问权限二次分配给了新用户test,则回收scott访问权限的同时,系统会自动回收由scott二次分配的访问权限;