Oracle经常查询的数据字典

目录


用户数据库对象

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

或 切到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
/




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值