数据字典

数据字典

数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者是sys用户。

用户只能在数据字典上执行查询操作,而且维护和修改是由系统完成的。

数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基础信息,普通用户不能直接访问数据字典的基表,数据字典视图是基于数据字典基表所建立起来的视图,普通用户可以通过查询数据字典视图取得系统的信息,数据字典视图主要包括:

user_xxx ,  all_xxx , dba_xxx 三种类型

·user_tables

 显示当前用户所拥有的表,也可以查到所属的表空间,它只返回本用户对应的方案的所有表

如:查询本用户拥有的表已经所属的表空间

SQL>select table_name,tablespace_name from user_tables ;

·all_tables

显示当前用户可以访问的所有表,包括其他用户对应的方案的表

SQL> select table_name,tablespace_name from all_tables ;

·dba_tables

它会显示所有方案拥有的数据库表,但是要查询的话要求必须是dba角色,或者有select any table 的系统权限

 如:system用户,他可以通过dba_tables来查询,用户,表名,表空间

SQL>select owner, table_name, tablespace_name from dba_tables;

查询scott拥有哪些表,所属那个表空间

SQL>select table_name, tablespace_name from dba_tables  where  owner = 'SCOTT';

如果要查询用户拥有的表,查询用户所在的表空间,查询某个用户拥有哪些表就可以用上面的三个视图,如果有时候忘了怎么写条件,可以使用desc来查询一下表的结构

但是关于用户,角色,和权限的话,就可以使用:

注意:最好使用sysdba身份登陆,因为有时候使用system的普通dba身份登陆的话,信息看不到

|- dba_user s: 可以显示所有数据库用户的详细信息

?查询hwt用户的密码

SQL> select password from dba_users  where username = 'HWT' ;

|- dba_sys_privs可以显示用户或者角色具有的系统权限

?查询scott具有的系统权限

SQL> select * from dba_sys_privs where grantee = 'SCOTT';

?查询connect 角色具有的系统权限

SQL> select * from dba_sys_privs where grantee = 'CONNECT';

|- dba_tab_privs:可以显示用户具有的对象权限

?查询scott具有的对象权限

SQL> select * from dba_tab_privs where grantee = 'SCOTT';

?查询connect 角色具有的对象权限

SQL> select * from dba_tab_privs where grantee = 'CONNECT';

|- dba_col_privs:可以显示用户具有的列权限

|- dba_rol_privs:可以显示用户具有的角色

?查询scott用户拥有的角色

SQL>select *from dba_role_privs  where grantee = 'SCOTT';

|- role_sys_privs: 可以显示某个角色的系统权限

?查询connect角色拥有的权限

SQL>select * from role_sys_privs where role = 'CONNECT';

|- role_tab_privs: 可以显示某个角色的对象权限

?查询connect角色的对象角色

SQL>select * from role_tab_privs where role = 'CONNECT';

 查询当前用户的角色,权限,索引等信息,以SCOTT用户为例

|- user_role_privs: 查询当前用户拥有的角色

  SQL>select * from user_role_privs;

|- user_sys_privs: 查询当前用户的系统权限

  SQL>select * from  user_sys_privs;

|- user_tab_privs: 查询当前用户的对象权限

      SQL>select * from  user_tab_privs;

|- user_indexes: 查询当前用户的索引

      SQL>select * from  user_indexes;

|- user_ind_columns 查询某一列上的索引

|- user_constraints 查询当前用户的约束

|- user_cons_columns 查询某一列的约束

|- user_views 查询视图

|- user_updatable_columns 查询键值保存表中可以更新的字段

select * from user_updatable_columns  where table_name='vwEMP';

如果对于这些视图忘记了,可以查询数据字典来查看

select * from dict where comments like '%grant%' ;

select * from dict where table_name like '%USER%' ; -- USER要大写

select * from dict where table_name like '%ROLE%' ; -- 

select * from dict where table_name like '%DBA%' ; -- 使用sysdba身份查看

查看全局数据名:

select * from  global_name ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值