Oracle數(shù)據(jù)庫(kù)常用的操作命令
常用的數(shù)據(jù)字典表:tab,user_tables,user_objects,user_catalog,user_constraints,user_cons_columns
1、視圖在所有存儲(chǔ)過(guò)程(數(shù)據(jù)字典表)中查詢是否有某一字符串的SQL語(yǔ)句
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ù)庫(kù): select * from v$database;
查看當(dāng)前所有的數(shù)據(jù)庫(kù)實(shí)例: select * from v$instance
查看當(dāng)前庫(kù)的所有數(shù)據(jù)表all_tables(用戶表user_tables):
select * from all_tables where table_name like 'T%' and owner='SYS';
查看當(dāng)前數(shù)據(jù)庫(kù)連接用戶 sqlplus Show user;或者select uid,user from dual;
查看當(dāng)前數(shù)據(jù)庫(kù)系統(tǒng)時(shí)間 select sysdate from dual;
查看數(shù)據(jù)庫(kù)表結(jié)構(gòu)字段: desc v$database;
查看哪些用戶擁有SYSDBA、SYSOPER權(quán)限: select * from v_$PWFILE_USERS;
4. 怎樣刪除用戶會(huì)話
SELECT * FROM v$session WHERE lower(USERNAME) = 'oems';
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
5、改變一個(gè)對(duì)象的名字,執(zhí)行RENAME語(yǔ)句,改變一個(gè)表、視圖、序列或同義詞
RENAME dept TO detail_dept;
6、檢查用戶是否將SYSTEM 表空間作為缺省表空間
SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE DEFAULT_TABLESPACE ='SYSTEM';
7、怎樣查找產(chǎn)生鎖的SQL 語(yǔ)句
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.hash_value=s.sql_hash_value and s.sid = a.sid and a.owner != 'SYS'
and upper (substr(a.object,1,2)) != 'V$'
8、添加注釋到表中,用COMMENT語(yǔ)句添加注釋到一個(gè)表或列中
(注釋通過(guò)數(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 受讓人可以刪除另一個(gè)用戶。
drop any table 受讓人可以刪除在任意方案中的表。
backup any table 受讓人用導(dǎo)出實(shí)用程序可以備份在任何方案中的任何表。
select any table 受讓人可以查詢?cè)谌魏畏桨钢械谋怼⒁晥D或快照。
create any table 受讓人可以在任何方案中創(chuàng)建表。
1.create user 創(chuàng)建用戶(通常由DBA執(zhí)行)
2.create role 創(chuàng)建一個(gè)權(quán)限的集合(通常由DBA執(zhí)行)
3.grant 給予其他用戶權(quán)限來(lái)訪問(wèn)本用戶的對(duì)象
4.alter user 改變用戶口令
5.revoke 刪除在用戶對(duì)象上的權(quán)限
(1)DBA用create user語(yǔ)句創(chuàng)建用戶:
create user scott identified by tiger
create user scott identified by tiger default tablespace users Temporary TABLESPACE Temp;
用sys以sysdba的身份來(lái)進(jìn)行登錄,在sys狀態(tài)是locked的時(shí)候也是能登錄的.然后再使用:鎖定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)限給一個(gè)用戶
grant create session, create table, create sequence, create view to scott;
<2>授予權(quán)限給一個(gè)角色
grant create table, create view to manager;
grant connect,resource,dba to scott;grant sysdba to scott;
<3>授予一個(gè)角色給用戶
grant manager to alice, lily;
<4>授予對(duì)象權(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>給一個(gè)用戶授權(quán)以級(jí)聯(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ù)字典視圖--
--說(shuō)明--
ROLE_SYS_PRIVS 授予角色的系統(tǒng)權(quán)限
ROLE_TAB_PRIVS 授予角色的表權(quán)限
USER_ROLE_PRIVS 可由用戶訪問(wèn)的角色
USER_TAB_PRIVS_MADE 授予用戶的對(duì)象上的對(duì)象權(quán)限
USER_TAB_PRIVS_RECD 授予用戶的對(duì)象權(quán)限
USER_COL_PRIVS_MADE 授予用戶對(duì)象的列上的對(duì)象權(quán)限
USER_COL_PRIVS_RECD 授予用戶在指定列上的對(duì)象權(quán)限
USER_SYS_PRIVS 授予用戶的系統(tǒng)權(quán)限
(4)改變口令,DBA創(chuàng)建用戶帳號(hào)并且初始化其口令,用alter user語(yǔ)句用戶可以改變口令:
alter user scott identified by tiger;
alter user system identified by test;
(5)撤消對(duì)象權(quán)限
用REVOKE語(yǔ)句撤消授予其他用戶的權(quán)限,通過(guò)WITH GRANT OPTION子句授予其他用戶的權(quán)限也被撤消
REVOKE select,insert ON departments FROM scott;
創(chuàng)建數(shù)據(jù)庫(kù)鏈接,USING子句指出了一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)的服務(wù)名。寫使用數(shù)據(jù)庫(kù)鏈接的SQL 語(yǔ)句
CREATE PUBLIC DATABASE LINK hq.sina.com USING 'sales'
CREATE PUBLIC SYNONYM HQ_EMP FOR emp@hq.sina.com;
系統(tǒng)權(quán)限和對(duì)象權(quán)限
授予對(duì)象權(quán)限時(shí)語(yǔ)句應(yīng)該是WITH GRANT OPTION子句,而在授予系統(tǒng)權(quán)象時(shí)語(yǔ)句是WITH ADMIN OPTION
對(duì)象權(quán)限就是指在表、視圖、序列、過(guò)程、函數(shù)或包等對(duì)象上執(zhí)行特殊動(dòng)作的權(quán)利.有九種不同類型的權(quán)限可以授予
給用戶或角色。
系統(tǒng)權(quán)限需要授予者有進(jìn)行系統(tǒng)級(jí)活動(dòng)的能力,如連接數(shù)據(jù)庫(kù),更改用戶會(huì)話、建立表或建立用戶等等
待續(xù)...