数据库权限

1.数据库权限有几类?连接?read?写?

Oracle数据库权限分为:系统权限和对象权限。

系统权限:指SESSION权限、USER权限等,也就是说对数据库的系统级的操都可以称为系统权限。 with admin option

对象权限:指表对象、序列、触发器等操作的权限。 with grant option

1.1查看所有的系统权限

通过语句:SELECT * FROM SYSTEM_PRIVILEGE_MAP ;查看oracle11g有208种系统权限

1.2查询某个用户拥有的权限

查询用户拥有的系统权限(直接赋值给用户的系统权限)

select * from user_sys_privs;

查询通过角色赋值给用户的系统权限

1)查询用户所拥有的角色

select * from user_role_privs;

2)查询角色所拥有的系统权限

select * from role_sys_privs  where role='角色名';

查询用户所拥有的对象权限(直接赋值给用户的对象权限)

select * from user_tab_privs;

查询通过角色赋值给用户的对象权限

1) 查询用户所拥有的角色

select * from user_role_privs;

2)查询角色所拥有的对象权限

select * from role_tab_privs  where role='角色名'

---------------------------------------------------------------------------------------------------------

1.select any table 系统权限

给普通用户授予select any table 权限,可以查看所有用户的表,但是查不到部分sys用户的表或视图,比如 dba_segments

2.select_catalog_role 角色权限(查询数据字典)

select_catalog_role 是一种角色(a role),select_catalog_role可以查看一些数据字典的视图·(可以看role的定义),如dba_之类的

给普通用户授予select_catalog_role角色,可以查看一些sys用户可以看到的表和视图,比如dba_segments,dba_tables但不是所有的表

角色的话需要重新登录或者显式的set role 来生效,而赋予系统权限是立即生效的。(P.S. 同样revoke权限也是立即生效)

 -------------------------------------------------------------------------------------------------------

 

参考资料:

1.select any dictionary与select_catalog_role区别

 

 

原文地址:https://www.cnblogs.com/jycjy/p/8082446.html