欢迎和你们交流技术相关问题:
邮箱: jiangxinnju@163.com
博客园地址: http://www.cnblogs.com/jiangxinnju
GitHub地址: https://github.com/jiangxincode
知乎地址: https://www.zhihu.com/people/jiangxinnjulinux
-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图 -- DBA_TABLES意为DBA拥有的或能够访问的全部的关系表。 -- ALL_TABLES意为某一用户拥有的或能够访问的全部的关系表。 -- USER_TABLES意为某一用户所拥有的全部的关系表。 -- 当某一用户自己就为数据库DBA时,DBA_TABLES与ALL_TABLES等价。 -- DBA_TABLES >= ALL_TABLES >= USER_TABLES -- 须要注意的是在ORACLE数据库中大小写是敏感的,而此三表中数据默认都是大写的,因此在进行查询的时候注意小写的数据可能会形成数据没法查到。 SELECT * FROM dba_views WHERE view_name LIKE 'DBA%'; SELECT * FROM dba_views WHERE view_name LIKE 'ALL%'; SELECT * FROM dba_views WHERE view_name LIKE 'USER%'; SELECT * FROM dba_views WHERE view_name LIKE 'V_$%'; -- 针对某个实例的视图 SELECT * FROM dba_views WHERE view_name LIKE 'GV_$%'; -- 全局视图,针对多个实例环境 SELECT * FROM dba_views WHERE view_name LIKE 'SESSION%'; SELECT * FROM dba_views WHERE view_name LIKE 'INDEX%'; SELECT count(1) FROM dba_tables; SELECT count(1) FROM all_tables; SELECT count(1) FROM user_tables; -- V$/GV$开头的绝大部分都是V_$/GV_$表的别名 SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'V$%'; SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'GV$%'; -- X$没有对应的X_$ SELECT * FROM dba_synonyms WHERE synonym_name LIKE 'X$%'; -- 比较经常使用的DBA开头的视图有 select * from dba_users; --数据库用户信息 select * from dba_roles; --角色信息 select * from dba_segments; --表段信息 select * from dba_extents; --数据区信息 select * from dba_objects; --数据库对象信息 select * from dba_lobs; --lob数据信息 select * from dba_tablespaces; --数据库表空间信息 select * from dba_data_files; --数据文件设置信息 select * from dba_temp_files; --临时数据文件信息 select * from dba_rollback_segs; --回滚段信息 select * from dba_ts_quotas; --用户表空间配额信息 select * from dba_free_space; --数据库空闲空间信息 select * from dba_profiles; --数据库用户资源限制信息 select * from dba_sys_privs; --用户的系统权限信息 select * from dba_tab_privs; --用户具备的对象权限信息 select * from dba_col_privs; --用户具备的列对象权限信息 select * from dba_role_privs; --用户具备的角色信息 select * from dba_audit_trail; --审计跟踪记录信息 select * from dba_stmt_audit_opts; --审计设置信息 select * from dba_audit_object; --对象审计结果信息 select * from dba_audit_session; --会话审计结果信息 select * from dba_indexes; --用户模式的索引信息 -- 比较经常使用的ALL开头的视图有 select * from all_users; --数据库全部用户的信息 select * from all_objects; --数据库全部的对象的信息 select * from all_def_audit_opts; --全部默认的审计设置信息 select * from all_tables; --全部的表对象信息 select * from all_indexes; --全部的数据库对象索引的信息 select * from all_tab_comments; --查询全部用户的表,视图等 select * from all_col_comments; --查询全部用户的表的列名和注释. select * from all_tab_columns; --查询全部用户的表的列名等信息(详细可是没有备注) -- 比较经常使用的ALL开头的视图有 select * from user_objects; --用户对象信息 select * from user_source; --数据库用户的全部资源对象信息 select * from user_segments; --用户的表段信息 select * from user_tables; --用户的表对象信息 select * from user_tab_columns; --用户的表列信息 select * from user_constraints; --用户的对象约束信息 select * from user_sys_privs; --当前用户的系统权限信息 select * from user_tab_privs; --当前用户的对象权限信息 select * from user_col_privs; --当前用户的表列权限信息 select * from user_col_comments; -- 查询本用户的表的列名和注释 select * from user_role_privs; --当前用户的角色权限信息 select * from user_indexes; --用户的索引信息 select * from user_ind_columns; --用户的索引对应的表列信息 select * from user_cons_columns; --用户的约束对应的表列信息 select * from user_clusters; --用户的全部簇信息 select * from user_clu_columns; --用户的簇所包含的内容信息 select * from user_cluster_hash_expressions; --散列簇的信息 -- 比较经常使用的V$开头的别名有 select * from v$database; --数据库信息 select * from v$datafile; --数据文件信息 select * from v$controlfile; --控制文件信息 select * from v$logfile; --重作日志信息 select * from v$instance; --数据库实例信息 select * from v$log; --日志组信息 select * from v$loghist; --日志历史信息 select * from v$sga; --数据库SGA信息 select * from v$parameter; --初始化参数信息 select * from v$process; --数据库服务器进程信息 select * from v$bgprocess; --数据库后台进程信息 select * from v$controlfile_record_section; --控制文件记载的各部分信息 select * from v$thread; --线程信息 select * from v$datafile_header; --数据文件头所记载的信息 select * from v$archived_log; --归档日志信息 select * from v$archive_dest; --归档日志的设置信息 select * from v$logmnr_contents; --归档日志分析的DML DDL结果信息 select * from v$logmnr_dictionary; --日志分析的字典文件信息 select * from v$logmnr_logs; --日志分析的日志列表信息 select * from v$tablespace; --表空间信息 select * from v$tempfile; --临时文件信息 select * from v$filestat; --数据文件的I/O统计信息 select * from v$undostat; --Undo数据信息 select * from v$rollname; --在线回滚段信息 select * from v$session; --会话信息 select * from v$transaction; --事务信息 select * from v$rollstat; --回滚段统计信息 select * from v$pwfile_users; --特权用户信息 select * from v$sqlarea; --当前查询过的sql语句访问过的资源及相关的信息 select * from v$sql; --与v$sqlarea基本相同的相关信息 select * from v$sysstat; --数据库系统状态信息 -- 比较经常使用的SESSION开头的视图有 select * from session_roles; --会话的角色信息 select * from session_privs; --会话的权限信息 -- 比较经常使用的INDEX开头的视图有 select * from index_stats; --索引的设置和存储信息 -- 伪表,参考oracle 中 dual 详解:http://blog.csdn.net/ozhouhui/article/details/7935196 select * from dual; --系统伪列表信息 select sysdate from dual; --可将Sysdate视为一个其结果为当前日期和时间的函数,在任何可使用Oracle函数的地方均可以使用Sysdate。也能够将它视为每一个表的一个隐藏的列或伪列。 select current_date from dual; --报告会话的时区中的系统日期。注:能够设置本身的时区,以区别于数据库的时区。 select SYSTIMESTAMP from dual; --报告TIMESTAMP数据类型格式的系统日期。 -- 系统权限 -- GRANTEE 接受该权限的用户名 -- OWNER 对象的拥有者 -- GRANTOR 赋予权限的用户 SELECT * FROM dba_sys_privs WHERE grantee = 'SYS'; SELECT * FROM dba_sys_privs WHERE grantee = 'CONNECT'; SELECT * FROM dba_sys_privs WHERE grantee = 'RESOURCE'; -- 角色权限 -- 查看某个用户有哪些角色 select * from dba_role_privs where grantee='SYS'; -- 查看某个角色被赋予了哪些用户 SELECT * FROM dba_role_privs WHERE granted_role = 'DBA'; -- 对象权限 SELECT * FROM dba_tab_privs; -- 授予某个用户某些角色 GRANT connect,resource TO 'USER'; GRANT dba to 'USER'; --给普通用户授予dba角色时,要从新链接才能生效 REVOKE dba to 'USER'; -- 直接授予某个用户某些权限 GRANT CREATE VIEW TO 'USER'; -- 查看某个系统用户是否有SYSDBA或者SYSOPER权限 -- oracle:DBA,SYSDBA,SYSOPER三者的区别:http://blog.chinaunix.net/uid-22457844-id-3045741.html select * from V$PWFILE_USERS; -- 锁定、解锁用户 SELECT * FROM dba_users WHERE username = 'SCOTT'; ALTER USER SCOTT account LOCK; --锁定用户 ALTER USER SCOTT account UNLOCK; --解锁用户 COMMIT; -- oracle10g 修改用户密码: http://blog.163.com/benbenfafa_88/blog/static/64930162200972594612972/ -- User Default Password Check in Oracle 11g: http://www.dbform.com/html/2009/673.html SELECT password FROM dba_users WHERE username = 'SCOTT'; alter user SCOTT identified by new_password; --修改用户密码 -- SERVICE_NAMES: http://docs.oracle.com/database/121/REFRN/GUID-AC956707-D568-4F8A-BF2E-99BA41E0A64F.htm#REFRN10194 SELECT * FROM global_name; -- 查看oracle的全局数据库名 SELECT * FROM v$database; -- 查看数据库名 show parameter db_name; -- 数据库实例名对应着SID -- SID: http://docs.oracle.com/database/121/LADBI/glossary.htm#LADBI8021 -- linux下在配置oracle环境变量的状况可使用 echo $ORACLE_SID,若是没有可使用ps -ef |grep oracle 来查询,结果中的xxxx就是对应的SID。 -- oracle 2548 1 0 Aug17 ? 00:00:00 ora_pmon_xxxx -- 在windows环境下,oracle是之后台服务的方式被管理的,因此看"控制面板->管理工具->服务 里面的名称:"OracleServiceORCL",则ORCL就是sid; SELECT * FROM v$instance; --查看数据库实例名 show parameter instance_name; select instance from v$thread; -- show parameter是oracle的命令,不是标准SQL语句 -- 能够在sqlplus或者pl/sql dev的命令窗口执行 -- show parameter aaaa;等价于SELECT * FROM v$parameter WHERE name like '%aaaa%'; SELECT * FROM v$parameter WHERE name like '%name%';