Abh*_*arg 75 security oracle oracle10g user-accounts
我使用的是Linux,Oracle10g.我创建了一个名为test的用户.并授予create session并为同一用户选择任何字典权限.
我还向同一用户授予了sysdba和sysoper角色.
现在我想显示授予用户的所有权限和角色.我发现以下查询,但它只显示创建会话和选择字典权限.
select privilege
from dba_sys_privs
where grantee='SAMPLE'
order by 1;
Run Code Online (Sandbox Code Playgroud)
请帮忙解决问题.
谢谢
小智 67
除了VAV的回答,第一个在我的环境中最有用
select * from USER_ROLE_PRIVS where USERNAME='SAMPLE';
select * from USER_TAB_PRIVS where Grantee = 'SAMPLE';
select * from USER_SYS_PRIVS where USERNAME = 'SAMPLE';
Run Code Online (Sandbox Code Playgroud)
VAV*_*VAV 54
请看http://docs.oracle.com/cd/B10501_01/server.920/a96521/privs.htm#15665
检查USER_SYS_PRIVS,USER_TAB_PRIVS,USER_ROLE_PRIVS表.
Moc*_*ing 48
没有其他答案对我有用,所以我写了自己的解决方案:
截至Oracle 11g.
用所需的用户名替换USER
授予的角色:
SELECT *
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = 'USER';
Run Code Online (Sandbox Code Playgroud)
直接授予用户的权限:
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE = 'USER';
Run Code Online (Sandbox Code Playgroud)
授予用户角色的权限:
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE IN (SELECT granted_role
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = 'USER');
Run Code Online (Sandbox Code Playgroud)
授予系统权限:
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE = 'USER';
Run Code Online (Sandbox Code Playgroud)
如果要查找当前连接的用户,可以使用USER替换表名中的DBA并删除WHERE子句.
upo*_*pog 10
通过某些角色向用户提供IF权限,然后可以使用SQL以下
select * from ROLE_ROLE_PRIVS where ROLE = 'ROLE_NAME';
select * from ROLE_TAB_PRIVS where ROLE = 'ROLE_NAME';
select * from ROLE_SYS_PRIVS where ROLE = 'ROLE_NAME';
Run Code Online (Sandbox Code Playgroud)
小智 8
结合之前的建议来确定您的个人权限(即'USER'权限),然后使用:
-- your permissions
select * from USER_ROLE_PRIVS where USERNAME= USER;
select * from USER_TAB_PRIVS where Grantee = USER;
select * from USER_SYS_PRIVS where USERNAME = USER;
-- granted role permissions
select * from ROLE_ROLE_PRIVS where ROLE IN (select granted_role from USER_ROLE_PRIVS where USERNAME= USER);
select * from ROLE_TAB_PRIVS where ROLE IN (select granted_role from USER_ROLE_PRIVS where USERNAME= USER);
select * from ROLE_SYS_PRIVS where ROLE IN (select granted_role from USER_ROLE_PRIVS where USERNAME= USER);
Run Code Online (Sandbox Code Playgroud)