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中方式可以根据实际情况随意使用,已达到使用目的。