ORACLE11g如何查询用户权限

在Oracle数据库中,您可以通过多种方式查询用户的权限。以下是一些常用的方法来查看特定用户具有的权限:

1. 使用数据字典视图

您可以使用数据字典视图来查询用户的权限。以下是一些常用的视图:

查询用户的所有系统权限:
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USERNAME';
查询用户的所有角色:
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'USERNAME';
查询用户对象权限:
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'USERNAME';
查询用户列权限:
SELECT * FROM DBA_COL_PRIVS WHERE GRANTEE = 'USERNAME';

2. 使用USER_*视图

如果您要以登录用户身份查询自己的权限,可以使用USER_*视图,这些视图只显示当前用户的权限信息:

查询当前用户的所有系统权限:
SELECT * FROM USER_SYS_PRIVS;
查询当前用户的所有角色:
SELECT * FROM USER_ROLE_PRIVS;
查询当前用户对象权限:
SELECT * FROM USER_TAB_PRIVS;
查询当前用户列权限:
SELECT * FROM USER_COL_PRIVS;

3. 使用ROLE_*SYSTEM_PRIVILEGE_MAP视图

您还可以查询哪些角色授予了哪些权限,以及权限的具体名称:

查询角色的权限:
SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE = 'ROLENAME';
查询权限名称:
SELECT PRIVILEGE FROM SYSTEM_PRIVILEGE_MAP WHERE PRIV = PRIV_NUMBER;

示例查询

假设您要查询用户SCOTT的系统权限,可以使用以下查询:

SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'SCOTT';

要查询SCOTT用户具有哪些角色,可以使用:

SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'SCOTT';

请将'SCOTT'替换为您想要查询的实际用户名。这些查询将为您提供该用户所具有的系统权限、角色、对象权限和列权限的详细信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值