系統函數:sys_context
terminal:當前會話客戶所對應的終端的標示符
language:語言
db_name:當前資料庫名稱
nls_date_formal:當前會話客戶所對應的日期格式
session_user:當前會話客戶所對應的資料庫使用者名稱
current_schema:當前會話客戶所對應的預設方案名
host:返回資料庫所在主機的名稱
通過該函數,可以查詢一些重要訊息,比如你在使用哪個資料庫:
Select sys_context(‘userenv’,’db_name’)from dual;(userenv固定格式)
串連sys資料庫的方法:
Connsys/change_on_install as sysdba;
啟動資料庫:startup
關閉資料庫:shutdown
管理初始化參數:
初始化參數用於設定執行個體或是資料庫的特徵,oracle9i提供了200多個初始化參數,並且每個初始化參數都有預設值。
顯示初始化參數
show parameter命令
如果想修改這些初始化參數,可以到檔案:
D:\oracle\admin\myoral\pfile\init.ora檔案中去修改
匯出:
匯出具體分為:匯出方案,匯出表,匯出資料庫三種方式
(2) 匯出使用exp命令來完成,該命令常用的選項用:
Userid:用於指定執行匯出操作的使用者名稱,口令,連結字串
Tables:用於指定執行匯出操作的表
Owner:用於指定執行匯出操作的方案
Inctype:用於指定執行匯出操作的增量類型
Rows:用於指定執行匯出操作是否要匯出表中的資料
File:用於指定匯出檔案名稱
匯出自己的表:(注意exp字母e的小寫)
expuserid=wangzihu/wangzihu@sjjz tables=(bbs,book) file=c:\mysql.dmp;(在匯入和匯出的時候,要到oracle目錄的bin/exp.exe檔案目錄下進行匯入和匯出或用cmd命令)
(3)匯出表的結構
expuserid=wangzihu/wangzihu@sjjz tables=(bbs) file=d:\e3.dmp rows=n;
(4)使用直接匯出方式
exp userid=wangzihu/wangzihu@sjjz tables=(bbs)file=d:\e3.dmpdirect=y;
這種方式比預設的常規方式速度要快,當資料量大時,可以考慮使用這樣的方法
匯出方案:
匯出自己的方案(匯出所有的對象,包括所有表,視圖,觸發器,預存程序等)
expwangzihu/wangzihu@sjjz owner=wangzihu file=d:\wangzihu.dmp;
匯入
匯入表:
匯入自己表
Imp userid=wangzihu/wangzihu@sjjz tables=(bbs)file=d:\e3.dmp;
2)匯入表到其它使用者
要求該使用者具有dba的許可權,或是imp_full_database
Imp userid=system/manager@myortables=(emp) file=d:\xx.dmp;
3)匯入表的結構
只匯入表的結構而不匯入資料
Imp userid=wangzihu/wangzihu@sjjztables=(bbs) file=d:\e3.dmp rows=n;
4)匯入資料
如果對象(比如表)已經存在可以匯入表的資料
Imp userid=wangzihu/wangzihu@sjjztables(bbs) file=d:\e3.dmp ignore=y;
匯入方案:
匯入自身的方案
Imp userid=wangzihu/wangzihufile=d:\wangzihu.dmp
匯入資料庫:
在預設情況下,當匯入資料庫時,會匯入所有對象結構和資料,案例如下:
Impuserid=system/manager full=y file=d:\xxx.dmp
資料字典:資料字典是oracle資料庫中最重要的組成部分,它提供了資料的一些系統資訊。
動態效能檢視記載了常式啟動後的相關資訊。
user_tables:
用於顯示目前使用者所擁有的所有表,它只返回使用者所對應方案的所有表
比如:selecttable_name from user_tables;
all_tables:
用於顯示目前使用者可以訪問的所有表,它不僅會返回目前使用者方案的所有表,還會返回目前使用者可以訪問的其它方案的表:
比如:selecttable_name from all_tables;
Dba_tables:
它會顯示所有方案擁有的資料庫表,但是查詢這種資料庫字典視圖,要求
使用者必須是dba角色或是select anytable系統許可權。
例如:當用system使用者查詢資料字典視圖dba.tables時,會返回system,sys,scott…方案所對應的資料庫表。
比如:selecttable_name from dba_tables;
使用者,許可權,角色
在建立使用者時,oracle會把使用者的資訊存放到資料字典中,當給使用者授予許可權或是角色時,oracle會將許可權和角色的資訊存放到資料字典。
通過查詢dba.users可以顯示素有資料庫使用者的詳細資料;
通過查詢資料字典視圖dba_sys_privs,可以顯示使用者所具有的系統許可權;
通過查詢資料字典視圖dba_tab_privs可以顯示使用者具有的對象許可權;
通過查詢資料字典dba_col_privs可以顯示使用者具有的列許可權;
通過查詢資料字典視圖dba_role_privs可以顯示使用者所具有的角色
比如:1)selectusername from dba_users (username固定格式)
2)Select * from dba_role_privs whereGRANTEE='WANGZIHU';( WANGZIHU注意大寫)
查看oracle中所有角色:
Select * from dba_roles;
查詢oracle中所有的系統許可權,一般是dba:
Select * from system_privilege_maporder by name;
查詢oracle中所有對象許可權,一般是dba:
Select distinct privilege fromdba_tab_privs;
一個角色包含的系統許可權
Select * from dba_sys_privs where grantee=’DBA’;
或者這樣也可以
Select * from role_sys_privs where role=’DBA’;
一個角色包括的對象許可權
Select * from dba_tab_privs where grantee=’DBA’;
如何查看某個使用者具有什麼樣的角色?
Select * from dba_role_privs where grantee=’ WANGZIHU’;
顯示目前使用者可以訪問的所有資料字典視圖
Select * from dict where commentslike ‘%grant%’;
顯示當前資料庫的全稱
Select * from global_name;