oracle 权限、角色集锦

 

Oracle11g 角色及权限 说明

 

 

系统提供的权限和角色

 

群集权限
CREATE CLUSTER
在自己的方案中创建、更改和删除群集
CREATE ANY CLUSTER
在任何方案中创建群集
ALTER ANY CLUSTER
在任何方案中更改群集
DROP ANY CLUSTER
在任何方案中删除群集

数据库权限
ALTER DATABASE
运行ALTER DATABASE语句,更改数据库的配置
ALTER SYSTEM
运行ALTER SYSTEM语句,更改系统的初始化参数
AUDIT SYSTEM
运行AUDIT SYSTEM和NOAUDIT SYSTEM语句,审计SQL
AUDIT ANY
运行AUDIT和NOAUDIT语句,对任何方案的对象进行审计

索引权限
CREATE ANY INDEX
在任何方案中创建索引
注意:没有CREATE INDEX权限,CREATE TABLE权限包含了CREATE INDEX权限
ALTER ANY INDEX
在任何方案中更改索引
DROP ANY INDEX
任何方案中删除索引

过程权限
CREATE PROCEDURE
在自己的方案中创建、更改或删除过程、函数和包
CREATE ANY PROCEDURE
在任何方案中创建过程、函数和包
ALTER ANY PROCEDURE
在任何方案中更改过程、函数和包
DROP ANY PROCEDURE
在任何方案中删除过程、函数或包
EXECUTE ANY PROCEDURE
在任何方案中执行或者引用过程

概要文件权限
CREATE PROFILE
创建概要文件
ALTER PROFILE
更改概要文件
DROP PROFILE
删除概要文件

角色权限
CREATE ROLE
创建角色
ALTER ANY ROLE
更改任何角色
DROP ANY ROLE
删除任何角色
GRANT ANY ROLE
向其他角色或用户授予任何角色
注意:没有对应的REVOKE ANY ROLE权限

回退段权限
CREATE ROLLBACK SEGMENT
创建回退段
注意:没有对撤销段的权限
ALTER ROLLBACK SEGMENT
更改回退段
DROP ROLLBACK SEGMENT
删除回退段


序列权限
CREATE SEQUENCE
在自己的方案中创建、更改、删除和选择序列
CREATE ANY SEQUENCE
在任何方案中创建序列
ALTER ANY SEQUENCE
在任何方案中更改序列
DROP ANY SEQUENCE
在任何方案中删除序列
SELECT ANY SEQUENCE
在任何方案中从任何序列中进行选择

会话权限
CREATE SESSION
创建会话,登录进入(连接到)数据库
ALTER SESSION
运行ALTER SESSION语句,更改会话的属性
ALTER RESOURCE COST
更改概要文件中的计算资源消耗的方式
RESTRICTED SESSION
在数据库处于受限会话模式下连接到数据


同义词权限
CREATE SYNONYM
在自己的方案中创建、删除同义词
CREATE ANY SYNONYM
在任何方案中创建专用同义词
CREATE PUBLIC SYNONYM
创建公共同义词
DROP ANY SYNONYM
在任何方案中删除同义词
DROP PUBLIC SYNONYM
删除公共同义词

表权限
CREATE TABLE
在自己的方案中创建、更改和删除表
CREATE ANY TABLE
在任何方案中创建表
ALTER ANY-TABLE
在任何方案中更改表
DROP ANY TABLE
在任何方案中删除表
COMMENT ANY TABLE
在任何方案中为任何表、视图或者列添加注释
SELECT ANY TABLE
在任何方案中选择任何表中的记录
INSERT ANY TABLE
在任何方案中向任何表插入新记录
UPDATE ANY TABLE
在任何方案中更改任何表中的记录
DELETE ANY TABLE
在任何方案中删除任何表中的记录
LOCK ANY TABLE
在任何方案中锁定任何表
FLASHBACK ANY TABLE
允许使用AS OF子句对任何方案中的表、视图执行一个SQL语句的闪回查询

表空间权限
CREATE TABLESPACE
创建表空间
ALTER TABLESPACE
更改表空间
DROP TABLESPACE
删除表空间,包括表、索引和表空间的群集
MANAGE TABLESPACE
管理表空间,使表空间处于ONLINE(联机)、OFFLINE(脱机)、BEGIN BACKUP(开始备份)、END BACKUP(结束备份)状态
UNLIMITED TABLESPACE
不受配额限制地使用表空间
注意:只能将UNLIMITED TABLESPACE授予账户而不能授予角色

用户权限
CREATE USER
创建用户
ALTER USER
更改用户
BECOME USER
当执行完全装入时,成为另一个用户
DROP USER
删除用户


视图权限
CREATE VIEW
在自己的方案中创建、更改和删除视图
CREATE ANY VIEW
在任何方案中创建视图
DROP ANY VIEW
在任何方案中删除视图
COMMENT ANY TABLE
在任何方案中为任何表、视图或者列添加注释
FLASHBACK ANY TABLE
允许使用AS OF子句对任何方案中的表、视图执行一个SQL语句的闪回查询


触发器权限
CREATE TRIGGER
在自己的方案中创建、更改和删除触发器
CREATE ANY TRIGGER
在任何方案中创建触发器
ALTER ANY TRIGGER
在任何方案中更改触发器
DROP ANY TRIGGER
在任何方案中删除触发器
ADMINISTER DATABASE TRIGGER
允许创建ON DATABASE触发器。在能够创建ON DATABASE触发器之前,还必须先拥有CREATE TRIGGER或CREATE ANY TRIGGER权限


专用权限
SYSOPER
(系统操作员权限)
STARTUP
SHUTDOWN
ALTER DATABASE MOUNT/OPEN
ALTER DATABASE BACKUP CONTROLFILE
ALTER DATABASE BEGIN/END BACKUP
ALTER DATABASE ARCHIVELOG
RECOVER DATABASE
RESTRICTED SESSION
CREATE SPFILE/PFILE
SYSDBA

(系统管理员权限)
SYSOPER的所有权限,并带有WITH ADMIN OPTION子句
CREATE DATABASE
RECOVER DATABASE UNTIL


其他权限
ANALYZE ANY
对任何方案中的任何表、群集或者索引执行ANALYZE语句
GRANT ANY OBJECT PRIVILEGE
授予任何方案上的任何对象上的对象权限
注意:没有对应的REVOKE ANY OBJECT PRIVILEGE
GRANT ANY PRIVILEGE
授予任何系统权限
注意:没有对应的REVOKE ANY PRIVILEGE
SELECT ANY DICTIONARY
允许从sys用户所拥有的数据字典表中进行选择

 

alter any cluster 修改任意簇的权限
  alter any index 修改任意索引的权限
  alter any role 修改任意角色的权限
  alter any sequence 修改任意序列的权限
  alter any snapshot 修改任意快照的权限
  alter any table 修改任意表的权限
  alter any trigger 修改任意触发器的权限
  alter cluster 修改拥有簇的权限
  alter database 修改数据库的权限
  alter procedure 修改拥有的存储过程权限
  alter profile 修改资源限制简表的权限
  alter resource cost 设置佳话资源开销的权限
  alter rollback segment 修改回滚段的权限
  alter sequence 修改拥有的序列权限
  alter session 修改数据库会话的权限
  alter sytem 修改数据库服务器设置的权限
  alter table 修改拥有的表权限
  alter tablespace 修改表空间的权限
  alter user 修改用户的权限
  analyze 使用analyze命令分析数据库中任意的表、索引和簇
  audit any 为任意的数据库对象设置审计选项
  audit system 允许系统操作审计
  backup any table 备份任意表的权限
  become user 切换用户状态的权限
  commit any table 提交表的权限
  create any cluster 为任意用户创建簇的权限
  create any index 为任意用户创建索引的权限
  create any procedure 为任意用户创建存储过程的权限
  create any sequence 为任意用户创建序列的权限
  create any snapshot 为任意用户创建快照的权限
  create any synonym 为任意用户创建同义名的权限
  create any table 为任意用户创建表的权限
  create any trigger 为任意用户创建触发器的权限
  create any view 为任意用户创建视图的权限
  create cluster 为用户创建簇的权限
  create database link 为用户创建的权限
  create procedure 为用户创建存储过程的权限
  create profile 创建资源限制简表的权限
  create public database link 创建公共数据库链路的权限
  create public synonym 创建公共同义名的权限
  create role 创建角色的权限
  create rollback segment 创建回滚段的权限
  create session 创建会话的权限
  create sequence 为用户创建序列的权限
  create snapshot 为用户创建快照的权限
  create synonym 为用户创建同义名的权限
  create table 为用户创建表的权限
  create tablespace 创建表空间的权限
  create user 创建用户的权限
  create view 为用户创建视图的权限
  delete any table 删除任意表行的权限
  delete any view 删除任意视图行的权限
  delete snapshot 删除快照中行的权限
  delete table 为用户删除表行的权限
  delete view 为用户删除视图行的权限
  drop any cluster 删除任意簇的权限
  drop any index 删除任意索引的权限
  drop any procedure 删除任意存储过程的权限
  drop any role 删除任意角色的权限
  drop any sequence 删除任意序列的权限
  drop any snapshot 删除任意快照的权限
  drop any synonym 删除任意同义名的权限
  drop any table 删除任意表的权限
  drop any trigger 删除任意触发器的权限
  drop any view 删除任意视图的权限
  drop profile 删除资源限制简表的权限
  drop public cluster 删除公共簇的权限
  drop public database link 删除公共数据链路的权限
  drop public synonym 删除公共同义名的权限
  drop rollback segment 删除回滚段的权限
  drop tablespace 删除表空间的权限
  drop user 删除用户的权限
  execute any procedure 执行任意存储过程的权限
  execute function 执行存储函数的权限
  execute package 执行存储包的权限
  execute procedure 执行用户存储过程的权限
  force any transaction 管理未提交的任意事务的输出权限
  force transaction 管理未提交的用户事务的输出权限
  grant any privilege 授予任意系统特权的权限
  grant any role 授予任意角色的权限
  index table 给表加索引的权限
  insert any table 向任意表中插入行的权限
  insert snapshot 向快照中插入行的权限
  insert table 向用户表中插入行的权限
  insert view 向用户视图中插行的权限
  lock any table 给任意表加锁的权限
  manager tablespace 管理(备份可用性)表空间的权限
  references table 参考表的权限
  restricted session 创建有限制的数据库会话的权限
  select any sequence 使用任意序列的权限
  select any table 使用任意表的权限
  select snapshot 使用快照的权限
  select sequence 使用用户序列的权限
  select table 使用用户表的权限
  select view 使用视图的权限
  unlimited tablespace 对表空间大小不加限制的权限
  update any table 修改任意表中行的权限
  update snapshot 修改快照中行的权限
  update table 修改用户表中的行的权限
  update view 修改视图中行的权限

 

 

Oracle 角色管理

一、何为角色
  角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。
二、系统预定义角色
  预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下介简单的介绍一下这些预定角色。角色所包含的权限可以用以下语句查询:
sql>select * from role_sys_privs where role='角色名';
1.CONNECT, RESOURCE, DBA
这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。
2.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE
这些角色主要用于访问数据字典视图和包。
3.EXP_FULL_DATABASE, IMP_FULL_DATABASE
这两个角色用于数据导入导出工具的使用。
4.AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE
AQ:Advanced Query。这两个角色用于oracle高级查询功能。
5. SNMPAGENT
用于oracle enterprise manager和Intelligent Agent
6.RECOVERY_CATALOG_OWNER
用于创建拥有恢复库的用户。关于恢复库的信息,参考oracle文档《Oracle9i User-Managed Backup and Recovery Guide》
7.HS_ADMIN_ROLE
A DBA using Oracle's heterogeneous services feature needs this role to access appropriate tables in the data dictionary.

 

管理角色
1.建一个角色
sql>create role role1;
2.授权给角色
sql>grant create any table,create procedure to role1;
3.授予角色给用户
sql>grant role1 to user1;
4.查看角色所包含的权限
sql>select * from role_sys_privs;
5.创建带有口令以角色(在生效带有口令的角色时必须提供口令)
sql>create role role1 identified by password1;
6.修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1;
7.设置当前用户要生效的角色
(注:角色的生效是一个什么概念呢?假设用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;在用户登录后,oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。)
sql>set role role1;//使role1生效
sql>set role role,role2;//使role1,role2生效
sql>set role role1 identified by password1;//使用带有口令的role1生效
sql>set role all;//使用该用户的所有角色生效
sql>set role none;//设置所有角色失效
sql>set role all except role1;//除role1外的该用户的所有其它角色生效。
sql>select * from SESSION_ROLES;//查看当前用户的生效的角色。
8.修改指定用户,设置其默认角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
详见oracle参考文档
9.删除角色
sql>drop role role1;
角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。
说明:
1)无法使用WITH GRANT OPTION为角色授予对象权限
2)可以使用WITH ADMIN OPTION 为角色授予系统权限,取消时不是级联

 

 

CONNECT角色:  --是授予最终用户的典型权利,最基本的
ALTER SESSION  --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图

RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇

CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型

DBA角色:
拥有系统所有系统级权限
IMP_FULL_DATABASE角色、EXP_FULL_DATABASE角色:
BACKUP ANY TABLE --备份任何表
EXECUTE ANY PROCEDURE --执行任何操作
SELECT ANY TABLE --查询任何表
DELETE_CATALOG_ROLE角色:
这个角色是Oracle8新增加的,如果授予用户这个角色,用户就可以从表sys.aud$中删除记录,
sys.aud$表中记录着审计后的记录,使用这个角色可以简化审计踪迹管理。
SELECT_CATALOG_ROLE角色、EXECUTE_CATALOG_ROLE角色:
SELECT_CATALOG_ROLE角色具有从数据字典查询的权利,
EXECUTE_CATALOG_ROLE角色具有从数据字典中执行部分过程和函数的权利。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值