歡迎和你們交流技術相關問題:
郵箱: 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%';