网站首页 > 技术文章 正文
一、概念
数据字典是oracle数据库中重要的组成部分,记录了数据库的一些系统信息。(静态信息)
动态性能视图记载了例程启动后的信息.(动态信息)
数据字典记录了数据的系统信息,是只读表和动态视图的集合,数据字典的所有者为sys用户,用户只能在数据字典上执行查询操作,其维护和修改是由系统自动完成的。(可摸不可动)
二、数据字典
数据字典由四部分组成:
1)内部表(X$): Oracle的核心,官网不做说明, Oracle通过大量X$建立起大量视图,仅供用户select。
2)数据字典表: 用以存储表、索引、约束以及其他数据库结构信息,通常以$结尾,如tab$,obj$,ts$,aud$等。
3)动态性能表(V$): 实时更新反应当前的数据库状态,官网对V$视图有详尽的说明。
4)数据字典视图: 在X$表和数据字典表上创建,通常分为三类dba_, all_, user_.
user_tables: 用于显示当前用户所拥有的所有表,它只返回用户所对应方案的所有表
比如:select table_name from user_tables;
all_tables: 用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表
比如:select table_name from all_tables;
dba_tables: 它会显示所有方案拥有的数据库表。但是查询这种数据库字典视图,要求用户必须是dba角色或是有select any table 系统权限。
例如:当用system用户查询数据字典视图dba_tables时,会返回system,sys,scott...方案所对应的数据库表。
三、用户名,权限,角色
在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典。
通过查询dba_users可以显示所有数据库用户的详细信息;
通过查询数据字典视图dba_sys_privs,可以显示用户所具有的系统权限;
通过查询数据字典视图dba_tab_privs,可以显示用户具有的对象权限;
通过查询数据字典dba_col_privs 可以显示用户具有的列权限;
通过查询数据库字典视图dba_role_privs 可以显示用户所具有的角色。
问题1:如何查询一个角色包括的权限?
a.一个角色包含的系统权限
select * from dba_sys_privs where grantee='角色名'
另外也可以这样查看:
select * from role_sys_privs where role='角色名'
b.一个角色包含的对象权限
select * from dba_tab_privs where grantee='角色名'
问题2:oracle究竟有多少种角色?
SQL> select * from dba_roles;
问题3:如何查看某个用户,具有什么样的角色?
select * from dba_role_privs where grantee='用户名'
显示当前用户可以访问的所有数据字典视图。
select * from dict where comments like '%grant%';
显示当前数据库的全称
select * from global_name;
四、动态性能视图
动态性能视图用于记录当前例程的活动信息,当启动oracle server时,系统会建立动态性能视图;当停止oracle server时,系统会删除动态性能视图。
oracle的所有动态性能视图都是以v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且其同义词是以V$开始的,例如v_$datafile的同义词为v$datafile;动态性能视图的所有者为sys。
一般情况下,由dba或是特权用户来查询动态性能视图。
篇幅有限,关于oracle数据字典和性能视图就介绍到这了,oracle最重要的九大性能视图也只能后面再分享了,后期会发更多关于运维DBA和devops内容,感兴趣的朋友可以关注下!
猜你喜欢
- 2024-10-16 数据库Oracle的安装及访问 oracle数据库安装视频教程
- 2024-10-16 Oracle数据库不为人知的几个概念:selectivity、cardinality和CF
- 2024-10-16 Oracle数据库之高级查询二 oracle 高级
- 2024-10-16 Oracle数据库死锁查询 oracle数据库死锁处理方法
- 2024-10-16 Oracle——怎么查看执行计划 oracle查看执行计划详解
- 2024-10-16 详解六种方法查看oracle执行计划=》优化必备
- 2024-10-16 oracle数据库条件查询之本月之前 oracle查询当月的每一天
- 2024-10-16 Oracle查看Sql执行计划的方法及示例
- 2024-10-16 详解Oracle 数据库启动过程 oracle数据库启动步骤顺序
- 2024-10-16 分享两个Oracle的shell脚本---一键获得数据库实例状态、参数及包
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)