目录
用户数据库对象
USER_TABLES
select table_name, tablespace_name
from user_tables;
USER_OBJECTS
select object_name, object_type, status
from user_objects;
USER_CATALOG
select * from catalog;
显示所有用户数据字典视图
select view_name from all_views where view_name like 'USER%';
用户权限查询
与权限有关的数据字典
SESSION_PRIVS //用户当前会话拥有的系统权限
USER_ROLE_PRIVS //用户被授予的角色
ROLE_SYS_PRIVS //用户当前拥有的角色的系统权限
USER_SYS_PRIVS //直接授予用户的系统权限
USER_TAB_PRIVS //授予用户的对象权限
包含了当前用户给其他用户的对象权限和其他用户给当前用户的对象权限
ROLE_TAB_PRIVS //授予角色的表的权限
USER_TAB_PRIVS_RECD //其他用户给当前用户的对象权限
USER_TAB_PRIVS_MADE //当前用户给其他用户的对象权限
USER_COL_PRIVS_MADE //在用户对象列一级上被分配的对象权限
USER_COL_PRIVS_RECD //在指定列上分配给用户的对象权限
直接赋予的系统权限
当前用户
select * from user_sys_privs;
USERNAME PRIVILEGE ADMIN_OPT
--------------- ------------------------- ---------
SCOTT CREATE VIEW NO
SCOTT UNLIMITED TABLESPACE NO
--------------- ------------------------- ---------
SCOTT CREATE VIEW NO
SCOTT UNLIMITED TABLESPACE NO
或 切到sys用户下
select * from dba_sys_privs where grantee='SCOTT';
用户所拥有的角色
select * from user_role_privs;
USERNAME GRANTED_ROLE ADMIN_OPT DEFAULT_R OS_GRANTE
--------------- ------------------------------ --------- --------- ---------
SCOTT CONNECT NO YES NO
SCOTT PLUSTRACE NO YES NO
SCOTT RESOURCE NO YES NO
当前登录用户所拥有角色包含的权限
select * from role_sys_privs;
ROLE PRIVILEGE ADMIN_OPT
------------------------------ ------------------------- ---------
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE CLUSTER NO
CONNECT CREATE SESSION NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE INDEXTYPE NO
RESOURCE CREATE TABLE NO
查询约束
查询当前用户拥有的约束
USER_CONSTRAINTS
select constraint_name,constraint_type,table_name , R_CONSTRAINT_NAME
from user_constraints
where owner='SCOTT'
/
如果是外键约束,R_CONSTRAINT_NAME列会显示对应的主键约束
查询与约束相关的列
USER_CONS_COLUMNS
select constraint_name, table_name, column_name
from user_cons_columns
/
有两个数据字典视图提供了约束的详细信息。USER_CONSTRAINTS和USER_CONS_COLUMNS.
一张表可能有也可能没有约束,对于一张表的每一个约束在USER_CONSTRAINTS中都有一条记录描述这个约束。包括约束应用到的表名称。如果你知道约束名想知道约束类型,查询USER_CONSTRAINTS表。这个视图描述了约束的定义。它不提供约束定义在哪些字段名称上。
在USER_CONS_COLUMNS视图中显示约束的字段名称。如果主键是个联合主键,这个视图中将有这个约束的两条记录。联合主键的每一个字段对应一条记录。每一条记录通过POSITION(在联合主键中的位置)来区别。
USER_CONSTRAINTS 和USER_CONS_COLUMNS都有字段CONSTRAINT_NAME 和TABLE_NAME.
---------------------------------------------------------------------
USER_CONSTRAINTS USER_CONST_COLUMNS
---------------------------------------------------------------------
CONSTRAINT_NAME CONSTRAINT_NAME
CONSTRAINT_TYPE TABLE_NAME
TABLE_NAME COLUMN_NAME
POSITION
----------------------------------------------------------------------
查看过程、函数、触发器
通过user_objects视图查看已存在的对象
select object_name,object_type,status
from user_objects
where object_type='PROCEDURE'
/
object_type='PROCEDURE' 查看已存在的过程
object_type='FUNCTION' 查看已存在的函数
通过对象名称查看USER_SOURCE视图,查看对象源代码
SELECT text FROM User_Source
WHERE NAME='INSERTDEPT'
/
如果对象状态为无效,查看User_Errors视图
SELECT line, position, text
FROM User_Errors
WHERE NAME='INSERTDEPT'
/
在数据字典USER_TRIGGERS中查看触发器
set long 200
SELECT trigger_name,(DESCRIPTION),trigger_body
FROM user_triggers
/