oracle如何嵌套一个表

2023-02-26 15:34 31次浏览 攻略

要汇总整个ORACLE系统视图和表,请执行以下操作:

启动DBA_。……。

关于Dba_users数据库用户

关于Dba_segments表段

关于Dba_extents数据区

关于Dba_objects数据库对象

关于Dba_tablespaces数据库表空间

关于设置Dba_data_files数据文件

关于Dba_temp_files临时数据文件

关于Dba_rollback_segs回退段

关于Dba_ts_quotas用户表空间限额

关于Dba_free_space数据库可用空间

关于Dba_profiles数据库用户资源限制

关于Dba_sys_privs用户的系统权限

关于Dba_tab_privs用户具有的对象权限

关于Dba_col_privs用户拥有的列对象权限

Dba_role_privs用户具有的角色信息

关于Dba_audit_trail审计线索记录

关于Dba_stmt_audit_opts审计设置

关于Dba_audit_object对象审计结果

关于Dba_audit_session会话审计结果

关于Dba_indexes用户方案的索引

user _ start

关于User_objects用户对象

User_source数据库用户的所有资源对象信息

User_segments用户的表段信息

关于User_tables用户的表对象

关于User_tab_columns用户的表列

关于User_constraints用户的对象约束条件

User_sys_privs关于目前使用者的系统权限

User_tab_privs关于目前使用者的物件权限

User_col_privs关于目前使用者的表格资料栏权限

User_role_privs关于目前使用者的角色权限

关于User_indexes用户的索引

User_ind_columns与用户索引相对应的表列信息

User_cons_columns关于使用者限制的表格资料栏资讯

User_clusters用户的所有集群信息

关于User_clu_columns用户的集群中包含的内容

User_cluster_hash_expressions散列集群的信息

以V$开头

关于V$database数据库

关于V$datafile数据文件

关于V $控制文件控制文件

关于V$logfile重做日志

关于V$instance数据库实例

关于V$log日志组

V$loghist日志记录信息

关于V$SGA数据库SGA

关于V$parameter初始化参数

关于V$process数据库服务器进程

关于V$bgprocess数据库后台进程

V$controlfile_record_section控制文件中记录的节信息

关于V$thread线程

V$datafile_header数据文件标头中记录的信息

关于V$archived_log归档日志

V$archive_dest关于存档日志的设置

V$logmnr_contents关于存档日志分析的DML DDL结果

V$logmnr_dictionary日志分析的字典文件信息

V$logmnr_logs日志分析的日志列表信息

关于V$tablespace表空间

关于V$tempfile临时文件

V$filestat数据文件的I/O统计信息

V$undostat关于Undo数据

V$rollname关于线上倒回区段

关于V$session会话

关于V$transaction事务处理

V$rollstat回退段统计信息

具有V$pwfile_users权限的用户信息

V$sqlarea从当前查询的SQL语句访问的资源和相关信息

V$sql基本上是与v$sqlarea相同的相关信息

V$sysstat数据库系统状态信息

All_开始

All_users数据库中所有用户的信息

All_objects数据库中所有对象的信息

All_def_audit_opts关于所有预设稽核设定

All_tables关于所有表格物件

All_indexes有关所有数据库对象索引的信息

session _ start

关于Session_roles会话的角色

关于Session_privs会话的权限

Index_启动

关于设置和存储Index_stats索引

伪造表

关于双系统医生列表

Oracle通用动态视图简介:

2.1.1v$lock

提供锁定信息(例如,类型字段、用户类型锁定)。TM、TX、UL和系统类型锁定。通常有MR、RT、XR、TS等。

我们只关心TM,TX锁。

当TM锁时,id1字段表示object_id;当TX锁时,trunc(id1/power(2,16))代表了回滚段号。

2.1.2 v$sqlarea

共享池中存储的sql和一些相关的信息,如累计的执行次数(executions),逻辑读(buffer_gets),物理读(disk_reads)等统计信息。

根据address和hash_value可以定位一条sql。sql_text字段存的这个sql的前1000个字符。查找整个的sql还需去v$sqltext或者v$sqltext_with_newlines。

2.1.3 v$session

V$SESSION是基础信息视图,用于找寻用户SID或SADDR。不过,它也有一些列会动态的变化,可用于检查用户。

2.1.4 v$sesstat

根据session id可以得到这个session的统计信息

2.1.6 v$process

v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。

2.1.7 v$transaction

根据session id可以查到当前session正在执行的事务信息:

Select * from v$transaction where addr in (select taddr from v$session where sid=&sid );

2.1.8 v$sort_usage

temp表空间的使用情况,当temp表空间变得巨大的时候,根据session_addr可以得到session id,根据sqladdr和sqlhash可以得到正在执行的sql:

2.1.9 v$sysstat

所有instance的统计信息

2.1.10 v$sqltext视图

v$sqltext视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。

2.1.11 V$SESSION_WAIT视图

这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。

V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。

2.1.12 概述

和权限,角色相关的视图大概有下面这些:

DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限

USER_SYS_PRIVS: 当前用户所拥有的系统权限

SESSION_PRIVS: 当前用户所拥有的全部权限

ROLE_SYS_PRIVS: 某个角色所拥有的系统权限

注意: 要以SYS用户登陆查询这个视图,否则返回空.

ROLE_ROLE_PRIVS: 当前角色被赋予的角色

SESSION_ROLES: 当前用户被激活的角色

USER_ROLE_PRIVS: 当前用户被授予的角色

另外更有针对表的访问权限的视图:

TABLE_PRIVILEGES

ALL_TAB_PRIVS

ROLE_TAB_PRIVS:某个角色被赋予的相关表的权限

2.2.4 Examples

1.查询当前用户所拥有的权限

Select * from session_privs;

2.查询某个用户被赋予的系统权限.

能够有多种方式

Select * from user_sys_privs;

或: select * from DBA_SYS_PRIVS where grantee='XXX'

(需要当前用户拥有DBA角色)

3. 查询当前用户被授予的角色:

1).Select * from SESSION_ROLES order by ROLE

说明: 这个查询会返回当前用户所被授予的全部角色, 其中包括嵌套授权的角色. 例如将DBA角色授予了一个用户,DBA角色已被授予的角色(例如 exp_full_database 和 imp_full_database) 也会被查询出来.

2). Select * from USER_ROLE_PRIVS

4. 查询某一角色被赋予的系统权限

Select Privilege from ROLE_SYS_PRIVS where ROLE=&Role

5. 查询当前角色被授予的角色

Select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE

说明: PLUSTRACE这个角色是用于执行SQL AUTO TRACE的, 通过执行$ORACLE_HOME/sqlplus/admin能够生成这个角色

相关推荐