oracle11g 查看用户权限
时间: 2024-09-11 20:03:48 浏览: 30
在Oracle 11g数据库中,查看用户权限可以通过查询数据字典视图来完成。数据字典是Oracle用来存储有关数据库结构的信息的数据库表。对于查看用户权限,可以使用以下几种方法:
1. 查看用户的权限列表:
可以使用`USER_TAB_PRIVS`视图来查看用户拥有的表权限,使用`USER_TAB_PRIVS`视图来查看用户拥有的系统权限。例如:
查看用户拥有的表权限:
```sql
SELECT TABLE_NAME, PRIVILEGE
FROM USER_TAB_PRIVS;
```
查看用户拥有的系统权限:
```sql
SELECT PRIVILEGE
FROM USER_SYS_PRIVS;
```
2. 查看用户的角色:
用户的权限可能来自于直接授予的权限,也可能来自于角色。可以使用`USER_ROLE_PRIVS`视图来查看用户的角色:
```sql
SELECT ROLE
FROM USER_ROLE_PRIVS;
```
3. 查看角色的权限:
若要查看某个角色所包含的权限,可以使用`DBA_TAB_PRIVS`(需要DBA权限)或`ALL_TAB_PRIVS`(需要被授予了查询其他用户权限的权限),并结合角色名称来查询:
```sql
SELECT TABLE_NAME, PRIVILEGE
FROM DBA_TAB_PRIVS
WHERE GRANTEE = 'ROLE_NAME';
```
同样的方法可以用来查询系统权限和角色的权限。
请注意,查询这些视图可能需要相应的权限。如果没有足够的权限,可能会收到“权限不足”的错误。对于普通用户来说,通常使用`USER_`开头的视图就足够了。