Oracle查询指定用户有权限的所有表


在Oracle使用过程中经常会用到查看当前或者指定用户对哪些表拥有权限,一下几种方法可以实现查看当前或者指定用户对哪些表拥有权限。

方法1:

根据指定用户名获得对应用户所拥有权限的表

SQL> SELECT table_name, owner FROM all_tables WHERE owner = 'SCOTT';
 
TABLE_NAME        OWNER
------------------------------ ------------------------------
DEPT                      SCOTT
EMP                        SCOTT
BONUS                  SCOTT
SALGRADE            SCOTT

方法2:
 
通过tab视图获得当前登录用户所有表和视图,通过tabletype过滤获得所有表

SQL> SELECT * FROM tab WHERE tabtype = 'TABLE';
 
TNAME                  TABTYPE  CLUSTERID
------------------------------ ------- ----------
DEPT                      TABLE
EMP                        TABLE
BONUS                  TABLE
SALGRADE            TABLE

方法3:
 
根据user_tables表获得当前用户拥有所有表

SQL> SELECT table_name FROM user_tables;
 
TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE

方法4:
 
根据sys表空间下all_object表获得指定用户指定类型对象(表)

SQL> SELECT object_name FROM sys.all_objects WHERE owner='SCOTT' AND object_type='TABLE';
 
OBJECT_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE

以上4中方式可以根据实际情况随意使用,已达到使用目的。

相关内容