服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

oracle数据库与用户角色权限相关的视图

【赛迪网-it技术报道】一. 概述

与权限,角色相关的视图大概有下面这些:

dba_sys_privs: 查询某个用户所拥有的系统权限

user_sys_privs: 当前用户所拥有的系统权限

session_privs: 当前用户所拥有的全部权限

role_sys_privs: 某个角色所拥有的系统权限

注意: 要以sys用户登陆查询这个视图,否则返回空.

role_role_privs: 当前角色被赋予的角色

session_roles: 当前用户被激活的角色

user_role_privs: 当前用户被授予的角色

另外还有针对表的访问权限的视图:

table_privileges

all_tab_privs

role_tab_privs: 某个角色被赋予的相关表的权限

...

二.examples

1.查询当前用户所拥有的权限

select * from session_privs;

2.查询某个用户被赋予的系统权限:

可以有多种方式

select * from user_sys_privs;

或者: select * from dba_sys_privs where grantee='xxx'

(需要当前用户拥有dba角色)

3.查询当前用户被授予的角色:

1.select * from session_roles order by role

说明: 这个查询会返回当前用户所被授予的全部角色, 其中包括

嵌套授权的角色. 例如将dba角色授予了一个用户,dba角色

已经被授予的角色(例如 exp_full_database 和 imp_full_database)

也会被查询出来

2.select * from user_role_privs

4.查询某一角色被赋予的系统权限

select privilege from role_sys_privs where role=&role

输入 role='connect'

输出:

privilege

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

alter session

create cluster

create database link

create sequence

create session

create synonym

create table

create view

5. 查询当前角色被授予的角色

select granted_role from role_role_privs where role=&role

输入 role= 'dba'

输出:

granted_role

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

delete_catalog_role

execute_catalog_role

exp_full_database

imp_full_database

plustrace

select_catalog_role

说明: plustrace这个角色是用于执行sql auto trace的, 通过执行

$oracle_home/sqlplus/admin/plustrce.sql可以生成这个角色。

扫描关注微信公众号