开发者社区> 黎明的烬> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Oracle的数据库管理(二) 之数据字典

简介: 数据字典:oracle数据库中最重要的组成部分,提供了数据库的一些系统信息。 动态性能视图记载了历程启动后的相关信息。 数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者sys用户。
+关注继续查看

数据字典:oracle数据库中最重要的组成部分,提供了数据库的一些系统信息。

动态性能视图记载了历程启动后的相关信息。


数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者sys用户。用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成。

数据字典的组成:数据字典包括数据字典表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表建立的视图,普通用户可以通过查询数据字典视图得到系统信息,数据字典视图主要包括user_xxx ,all_xxx,dba_xxx三种类型。

user_table:

用于显示当前用户所拥有的所有表,它只返回用户所对应的方案的所有表

select   table_name  from   user_tables;

all_tables:用于显示当前用户可以访问的所有表。他不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表;

  比如:select   table_name  from  all_tables;


dba_tables

它会显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须是dba角色或是有select  any table系统权限。system,sys,scott    等  方案所对应的的数据库表。



用户、权限、角色

在建立用户时,oracle会把用户信息存放在数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典中。

通过查询dba_users可以显示所有的数据库用户的详细信息;

通过数据字典视图dba_sys_privs,可以显示用户具有的系统权限 ;

通过数据字典视图dba_tab_privs,可以显示用户具有的对象权限 ;

通过数据字典视图dba_col_privs,可以显示用户具有的列权限 ;

通过数据字典视图dba_role_privs,可以显示用户具有的角色 ;

   查询系统权限,一般是dba:

SQL> select * from   system_privilege_map   order  by  name ;


查询oracle中所有的角色,一般是dba:

SQL> select * from   dba_roles;

查询oracle中的所有的对象权限 一般是dba:

SQL> select  distinct  privilege  from dba_tab_privs;

查看数据库的表空间:

SQL> select tablespace_name from  dba_tablespaces;



问题:

?查询某个用户具有怎么样的角色

select  *  from  dba_role_privs  where  grantee = '用户名'

?查询某个角色包括哪些系统权限

select  * from  dba_sys_privs  where  grantee='DBA'

或者是,select  * from  role_sys_privs   where  role = 'DBA'

? 查看某个角色包括的对象权限

select * from  dba_tab_privs    where grantee ='角色名'

1、 ?如何查询一个角色包括的权限。

a.一个角色包含的系统权限

b.一个角色包含的对象权限

2、oracle究竟有多少种角色?

select  *  from  dba_roles;

3、查看某个用户,具有什么样的角色?

select   *  from  dba_role_privs where  grantee='scott'


显示当前用户可以访问的所有数据字典视图;

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



显示当前数据库的全称

select  * from  global_name 


其他说明

数据字典记录有oracle数据库的所有系统信息,通过查询数据字典可以去的下列系统信息:比如

(1)对象定义情况

(2)对象占用空间大小

(3)列信息

(4)约束信息


动态视图

图3图3

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
探索Oracle之数据库升级九 12.1.0.1 Update 12.1.0.2
探索Oracle之数据库升级九 12.1.0.1 Update 12.1.0.2 一、检查当前数据库版本及系统信息 [oracle@db01 ~]$ lsb_release -a LSB Version: :core-4.
1212 0
探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304
探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304 一、   补丁描述 参考metalink doc: (Doc ID 19774304.
1374 0
探索Oracle之数据库升级五 PSU11.2.0.4.3 rollback 11.2.0.4.0
探索Oracle之数据库升级五 PSU11.2.0.4.3 rollback 11.2.0.4.0   一、进入PSU目录,执行opatch rollback   [root@db01~]# su - oracle [orac...
757 0
探索Oracle之数据库升级四 11.2.0.4.0 PSU 11.2.0.4.3
探索Oracle之数据库升级四11.2.0.4.0 PSU 11.2.0.4.3   一、  检查当前数据库PSU号: [oracle@db01 ~]$ cd/DBSoft/Product/11.
975 0
Oracle数据库常用十一大操作指令(五)
DBA们每天会用到大大小小很多指令,本文对这些指令做了归纳总结,希望可以帮助大家查阅翻看。
41 0
Oracle数据库常用十一大操作指令(四)
DBA们每天会用到大大小小很多指令,本文对这些指令做了归纳总结,希望可以帮助大家查阅翻看。
44 0
Oracle 数据库性能优化3日实战(企业培训)
课程名称一: Oracle性能优化及调整 课程时长 1天 课程深度: 高级 上机实验: 10%-30% 授课对象: Oracle开发人员、Oracle数据库管理人员,应用程序开发人员 课程描述: 本课程讲述Oracle数据库物理层规划,系统性能的监控,数据库性能参数调整,统计信息的收集,使用自动化调试工具优化数据库,I/O子系统的配置与设计以及性能优化方法论等。
1753 0
oracle 判断列是否在数据库中存在
select count('列名') from cols  where table_name=upper('表名') and column_name=upper('列名')其存在与否的结果与oracle 判断某个表是否存在一样,都是返回1或者0
693 0
+关注
66
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载