Oracle 权限管理

 
Oracle的权限有三种类型:
Object privileges    对象权限
Role privileges       角色权限
System privileges  系统权限
 
(一)、对象权限
 
一般来说的,对象权限,是针对一个用户对某些表,视图,函数,存储过程的访问权限
grant select, insert, update, delete on test_table to test_user;             赋予用户test_user对表test_table增删改查权限
 
grant execute on F_zsd_test to test_user;
grant execute on PRO_zsd_test to test_user;                                    赋予用户test_user对函数和存储过程的执行权限
 
grant select, insert, update, delete on VIEW_P_test to test_user;        对视图VIEW_P_test增删改查权限
 
 
(二)、角色权限,最基础的是connect与resource的权限

(1). CONNECT角色: 
--是授予最终用户的典型权利,最基本的
ALTER  SESSION                  --修改会话
CREATE  CLUSTER            --建立聚簇
CREATE  DATABASE LINK    --建立数据库链接
CREATE  SEQUENCE          --建立序列
CREATE  SESSION                --建立会话
CREATE  SYNONYM               --建立同义词
CREATE  VIEW                     --建立视图
 
(2). RESOURCE 角色:    --是授予开发人员的
CREATE  CLUSTER        --建立聚簇
CREATE  PROCEDURE   --建立过程
CREATE  SEQUENCE     --建立序列
CREATE  TABLE           --建表
CREATE  TRIGGER       --建立触发器
CREATE  TYPE             --建立类型
 
从dba_sys_privs里可以查到(注意这里必须以DBA角色登录):
select * from dba_sys_privs t where t.grantee='RESOURCE' order by priilege;         可以查看resource角色的权限
select * from dba_sys_privs t where t.grantee='CONNECT'   order by priilege;         可以查看connect角色的权限
 
所以,一般在企业中,对一般用户,只会赋予connect的权限,让他只有一些看,和链接数据库的操作。拥有自己的会话
对开发人员,就会connect和resource都会赋予,因为,给予开发人员可以create。
 
(三)、系统权限

系统权限,会对所有的对象进行限制(例如,存储过程,表,簇,用户,序列等等)
grant create any cluster   to test;
grant create any index     to test;
grant create any procedure to test;
grant create any role      to test;
grant create rollback segment to test;
grant create any sequence  to test;
grant create any synonym   to test;
......
可以查看相关系统权限列表
 
使用场景:
当你配置了一个生产库,要一个用户test的时候,这个用户只是只读用户,那么
就一般会给他一个select any table的系统权限
grant select any table to test;                     就是赋予用户test查询任何表;
 
以上为个人笔记,学习用。
 
 
原文地址:https://www.cnblogs.com/fengaix6/p/3866241.html