定义:控制用户在数据库中所能进行的操作权限
分类:系统权限和对象权限
一、系统权限
系统权限(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:对象权限