Oracle10.2在線文檔: http://www.oracle.com/pls/db102/homepage
常用的數(shù)據(jù)字典表:tab,user_tables,user_objects,user_catalog,user_constraints,user_cons_columns
1、視圖在所有存儲過程(數(shù)據(jù)字典表)中查詢是否有某一字符串的SQL語句
select * from all_source where type='PROCEDURE' and lower(text) like '%student %'
select * from user_source where lower(text) like '%dbms_%'
select tname,cname,coltype,width from col where tname='STUDENT'
select * from all_tables where owner ='OEMS'
select * from all_constraints where constraint_name = 'JWTHESIS_R_THESISWRITEBATCH_ID'
2、sqlplus連接oracle
Oracle安裝后默認(rèn)密碼: sys(change_on_install),system(manager),internal(oracle),scott(tiger)
connect system/manager as sysdba;(as sysoper)
connect internal/oracle AS SYSDBA;(scott/tiger)
connect sys/change_on_install as sysdba;
3、 查看當(dāng)前連接數(shù):select * from v$license
查看當(dāng)前的所有數(shù)據(jù)庫: select * from v$database;
查看當(dāng)前所有的數(shù)據(jù)庫實例: select * from v$instance
查看當(dāng)前庫的所有數(shù)據(jù)表all_tables(用戶表user_tables):
select * from all_tables where table_name like 'T%' and owner='SYS';
查看當(dāng)前數(shù)據(jù)庫連接用戶 sqlplus Show user;或者select uid,user from dual;
查看當(dāng)前數(shù)據(jù)庫系統(tǒng)時間 select sysdate from dual;
查看數(shù)據(jù)庫表結(jié)構(gòu)字段: desc v$database;
查看哪些用戶擁有SYSDBA、SYSOPER權(quán)限: select * from v_$PWFILE_USERS;
4. 怎樣刪除用戶會話
SELECT * FROM v$session WHERE lower(USERNAME) = 'oems';
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
5、改變一個對象的名字,執(zhí)行RENAME語句,改變一個表、視圖、序列或同義詞
RENAME dept TO detail_dept;
6、檢查用戶是否將SYSTEM 表空間作為缺省表空間
SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE DEFAULT_TABLESPACE ='SYSTEM';
7、怎樣查找產(chǎn)生鎖的SQL 語句
select s.username username,a.sid sid,a.owner||'.'||a.object object,s.lockwait,t.sql_text SQL
from v$sqltext t,v$session s,v$access a
where t.address=s.sql_address and t.hashvalue=s.sql_hash_value and s.sid = a.sid and a.owner != 'SYS'
and upper (substr(a.object,1,2)) != 'V$'
8、添加注釋到表中,用COMMENT語句添加注釋到一個表或列中
(注釋通過數(shù)據(jù)字典視圖查看CALL_COL_COMMENTS,CUSER_COL_COMMENTS,CALL_TAB_COMMENTS,CUSER_TAB_COMMENTS)
COMMENT ON TABLE employees IS 'Employee Information'
9、系統(tǒng)日期sysdate顯示,環(huán)境變量nls_date_format設(shè)置日期顯示格式
alter session set nls_date_format='yyyy"天"mm"月"dd"日"' --'yyyy-mm-dd hh24:mi:ss'
10、日期顯示的類型
Select sysdate,to_char(sysdate,'yyyy.mm.dd')col1,to_char(sysdate,'dd-mon-yyyy hh24:mi:ss day')col2
from dual
Select trunc(sysdate) + 0.5 col from dual
Select trunc(sysdate) ||' 12:00:00' col From dual
11、DBA權(quán)限
--典型的DBA權(quán)限--
--系統(tǒng)權(quán)限--
--授權(quán)的操作--
create user 受讓人可以創(chuàng)建其他 oracle 用戶 (需要有DBA角色權(quán)限)。
drop user 受讓人可以刪除另一個用戶。
drop any table 受讓人可以刪除在任意方案中的表。
backup any table 受讓人用導(dǎo)出實用程序可以備份在任何方案中的任何表。
select any table 受讓人可以查詢在任何方案中的表、視圖或快照。
create any table 受讓人可以在任何方案中創(chuàng)建表。
1.create user 創(chuàng)建用戶(通常由DBA執(zhí)行)
2.create role 創(chuàng)建一個權(quán)限的集合(通常由DBA執(zhí)行)
3.grant 給予其他用戶權(quán)限來訪問本用戶的對象
4.alter user 改變用戶口令
5.revoke 刪除在用戶對象上的權(quán)限
(1)DBA用create user語句創(chuàng)建用戶:
create user scott identified by tiger
create user scott identified by tiger default tablespace users Temporary TABLESPACE Temp;
用sys以sysdba的身份來進(jìn)行登錄,在sys狀態(tài)是locked的時候也是能登錄的.然后再使用:鎖定alter user scott
account lock;解鎖alter user sys account unlock
(2)創(chuàng)建角色并且授予權(quán)限給角色,角色是命名的可以授予用戶的相關(guān)權(quán)限的組,該方法使得授予、撤回和維護(hù)權(quán)限容易的多
首先,DBA必須創(chuàng)建角色,然后,DBA可以分配角色給角色和用戶,創(chuàng)建角色:create role manager;
(3)DBA授予指定的系統(tǒng)權(quán)限
<1>授予指定系統(tǒng)權(quán)限給一個用戶
grant create session, create table, create sequence, create view to scott;
<2>授予權(quán)限給一個角色
grant create table, create view to manager;
grant connect,resource,dba to scott;grant sysdba to scott;
<3>授予一個角色給用戶
grant manager to alice, lily;
<4>授予對象權(quán)限,授予查詢權(quán)限到employees表上
grant select on employees to sue, rich;
<5>授予權(quán)限到以更新指定的列到用戶和角色
grant update (department_name, location_id) on departments to scott, manager;
<6>給一個用戶授權(quán)以級聯(lián)權(quán)限授予
grant select, insert on departments to scott with grant option
<7>允許所有在系統(tǒng)上的用戶從alice 的departments 表中查詢數(shù)據(jù):
grant select on alice.departments to public
--確認(rèn)已授予的權(quán)限
--數(shù)據(jù)字典視圖--
--說明--
ROLE_SYS_PRIVS 授予角色的系統(tǒng)權(quán)限
ROLE_TAB_PRIVS 授予角色的表權(quán)限
USER_ROLE_PRIVS 可由用戶訪問的角色
USER_TAB_PRIVS_MADE 授予用戶的對象上的對象權(quán)限
USER_TAB_PRIVS_RECD 授予用戶的對象權(quán)限
USER_COL_PRIVS_MADE 授予用戶對象的列上的對象權(quán)限
USER_COL_PRIVS_RECD 授予用戶在指定列上的對象權(quán)限
USER_SYS_PRIVS 授予用戶的系統(tǒng)權(quán)限
(4)改變口令,DBA創(chuàng)建用戶賬號并且初始化其口令,用alter user語句用戶可以改變口令:
alter user scott identified by tiger;
alter user system identified by test;
(5)撤消對象權(quán)限
用REVOKE語句撤消授予其他用戶的權(quán)限,通過WITH GRANT OPTION子句授予其他用戶的權(quán)限也被撤消
REVOKE select,insert ON departments FROM scott;
創(chuàng)建數(shù)據(jù)庫鏈接,USING子句指出了一個遠(yuǎn)程數(shù)據(jù)庫的服務(wù)名。寫使用數(shù)據(jù)庫鏈接的SQL 語句
CREATE PUBLIC DATABASE LINK hq.sina.com USING 'sales'
CREATE PUBLIC SYNONYM HQ_EMP FOR emp@hq.sina.com;
系統(tǒng)權(quán)限和對象權(quán)限
授予對象權(quán)限時語句應(yīng)該是WITH GRANT OPTION子句,而在授予系統(tǒng)權(quán)象時語句是WITH ADMIN OPTION
對象權(quán)限就是指在表、視圖、序列、過程、函數(shù)或包等對象上執(zhí)行特殊動作的權(quán)利.有九種不同類型的權(quán)限可以授予
給用戶或角色。
系統(tǒng)權(quán)限需要授予者有進(jìn)行系統(tǒng)級活動的能力,如連接數(shù)據(jù)庫,更改用戶會話、建立表或建立用戶等等