一、权限
1、权限:执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对象权限两种。
2、系统权限
1)系统权限:执行特定类型sql命令的权利,用于控制用户可以执行的一个或是一组数据库操作。
- 当用户具有create table权限时,可以在其它方案中建表。
- 当用户具有create any table权限时,可以在任何方案中建表。
- oracle提供了两百多种系统权限。
2)常用权限
- create session:连接数据库
- create table:建表
- create view:建视图
- create public synonym:建同义词
- crete procedure:建过程、函数、包
- create trigger:见触发器
- create claster:建簇
3)显示系统权限:oracle的版本越高,提供的系统权限就越多。可以查询数据字典视图system_privilege_map来显示所有系统权限。
- select * from system_privilege_map order by name;
4)授予系统权限:
(1)一般情况,授予系统权限是由dba完成的。如果用其他用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限。在授予系统权限是,可以带有with admin option选项。这样,被授予权限的用户或角色还可以将该系统权限授予其它用户或角色。
(2)示例
- 创建两个用户ken,tom。初始阶段他们咩有任何权限,如果登录就会给出错误信息。
-
- create user ken identified by ken;
- 给用户ken授权
-
- grant create session,create table to ken with admin option;
- grant create view to ken;
- 给用户tom授权
-
- grant create session,create table to tom;
- grant create view to tom;(False)
5)回收系统权限
(1)一般情况,回收系统权限是由dba完成的。如果用其他用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。
(2)回收系统权限使用revoke来完成。
(3)系统权限不是级联回收。