定义:控制用户在数据库中所能进行的操作权限
分类:系统权限和对象权限
一、系统权限
系统权限(system Privilege):允许执行一组特定的命令
CREATE SESSION 创建会话CREATE/DROP USER 创建用户CREATE/DROP VIEW 创建视图CREATE/DROP SEQUENCE 创建序列CREATE/DROP SYNONYM 创建同名对象CREATE/DROP TABLE 在用户模式中创建表With admin option 进行系统权限传递
二、对象权限对象权限(objects Privilege) : 赋予在某一具体数据对象的操作能力(1) 9种对象权限:Select 、Update、Delete、Insert、Execute、Index、reference、Alter、Read
(2)对象权限传递
With Grant Option
被授予With Grant Option对象权限的用户,可将该对象权限授予其他用户。
三、授予权限的方法 grant privilege [, privilege...] to user [, user|role, public...] [with admin option]; 1)直接授予用户:
grant create session to annie; 2)先将权限授予角色,再将角色授予用户 Create role teach; grant select on class to teach; grant teach to annie;例子:
grant create session to test; Grant connect,resource to test; Grant dba to test;四、权限回收授予的对象权限和系统权限可以通过Revoke语句收回例子: revoke 权限 from test ;--回收系统权限
revoke select on class from test ; --回收对象权限
注意:– 一个用户被多用户授予权限后,其中一个用户收回权限,不影响其他用户授予的权限– 收回With grant option 或 With admin option,要首先回收相应的权限,再重新授予该权限而不再授予With grantoption 或 With admin option– 传递权限With admin option给其他用后,如果此系统权限被回收,其他用户仍然拥有该系统权限– 传递权限With grant option给其他用后,如果此对象权限被回收,其他用户该对象权限也被收回
五、权限查询查询当前用户的系统权限:SELECT * FROM session_privs;视图USER_TAB_Privs:对象权限