Oracle數據庫常用的操作命令
常用的數據字典表:tab,user_tables,user_objects,user_catalog,user_constraints,user_cons_columns
1、視圖在所有存儲過程(數據字典表)中查詢是否有某一字符串的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安裝后默認密碼: 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、查看當前連接數:select * from v$license
查看當前的所有數據庫: select * from v$database;
查看當前所有的數據庫實例: select * from v$instance
查看當前庫的所有數據表all_tables(用戶表user_tables):
select * from all_tables where table_name like 'T%' and owner='SYS';
查看當前數據庫連接用戶 sqlplus Show user;或者select uid,user from dual;
查看當前數據庫系統時間 select sysdate from dual;
查看數據庫表結構字段: desc v$database;
查看哪些用戶擁有SYSDBA、SYSOPER權限: select * from v_$PWFILE_USERS;
4. 怎樣刪除用戶會話
SELECT * FROM v$session WHERE lower(USERNAME) = 'oems';
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
5、改變一個對象的名字,執行RENAME語句,改變一個表、視圖、序列或同義詞
RENAME dept TO detail_dept;
6、檢查用戶是否將SYSTEM 表空間作為缺省表空間
SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE DEFAULT_TABLESPACE ='SYSTEM';
7、怎樣查找產生鎖的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.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語句添加注釋到一個表或列中
(注釋通過數據字典視圖查看CALL_COL_COMMENTS,CUSER_COL_COMMENTS,CALL_TAB_COMMENTS,CUSER_TAB_COMMENTS)
COMMENT ON TABLE employees IS 'Employee Information'
9、系統日期sysdate顯示,環境變量nls_date_format設置日期顯示格式
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權限
--典型的DBA權限--
--系統權限--
--授權的操作--
create user 受讓人可以創建其他 oracle 用戶 (需要有DBA角色權限)。
drop user 受讓人可以刪除另一個用戶。
drop any table 受讓人可以刪除在任意方案中的表。
backup any table 受讓人用導出實用程序可以備份在任何方案中的任何表。
select any table 受讓人可以查詢在任何方案中的表、視圖或快照。
create any table 受讓人可以在任何方案中創建表。
1.create user 創建用戶(通常由DBA執行)
2.create role 創建一個權限的集合(通常由DBA執行)
3.grant 給予其他用戶權限來訪問本用戶的對象
4.alter user 改變用戶口令
5.revoke 刪除在用戶對象上的權限
(1)DBA用create user語句創建用戶:
create user scott identified by tiger
create user scott identified by tiger default tablespace users Temporary TABLESPACE Temp;
用sys以sysdba的身份來進行登錄,在sys狀態是locked的時候也是能登錄的.然后再使用:鎖定alter user scott
account lock;解鎖alter user sys account unlock
(2)創建角色并且授予權限給角色,角色是命名的可以授予用戶的相關權限的組,該方法使得授予、撤回和維護權限容易的多
首先,DBA必須創建角色,然后,DBA可以分配角色給角色和用戶,創建角色:create role manager;
(3)DBA授予指定的系統權限
<1>授予指定系統權限給一個用戶
grant create session, create table, create sequence, create view to scott;
<2>授予權限給一個角色
grant create table, create view to manager;
grant connect,resource,dba to scott;grant sysdba to scott;
<3>授予一個角色給用戶
grant manager to alice, lily;
<4>授予對象權限,授予查詢權限到employees表上
grant select on employees to sue, rich;
<5>授予權限到以更新指定的列到用戶和角色
grant update (department_name, location_id) on departments to scott, manager;
<6>給一個用戶授權以級聯權限授予
grant select, insert on departments to scott with grant option
<7>允許所有在系統上的用戶從alice 的departments 表中查詢數據:
grant select on alice.departments to public
--確認已授予的權限
--數據字典視圖--
--說明--
ROLE_SYS_PRIVS 授予角色的系統權限
ROLE_TAB_PRIVS 授予角色的表權限
USER_ROLE_PRIVS 可由用戶訪問的角色
USER_TAB_PRIVS_MADE 授予用戶的對象上的對象權限
USER_TAB_PRIVS_RECD 授予用戶的對象權限
USER_COL_PRIVS_MADE 授予用戶對象的列上的對象權限
USER_COL_PRIVS_RECD 授予用戶在指定列上的對象權限
USER_SYS_PRIVS 授予用戶的系統權限
(4)改變口令,DBA創建用戶帳號并且初始化其口令,用alter user語句用戶可以改變口令:
alter user scott identified by tiger;
alter user system identified by test;
(5)撤消對象權限
用REVOKE語句撤消授予其他用戶的權限,通過WITH GRANT OPTION子句授予其他用戶的權限也被撤消
REVOKE select,insert ON departments FROM scott;
創建數據庫鏈接,USING子句指出了一個遠程數據庫的服務名。寫使用數據庫鏈接的SQL 語句
CREATE PUBLIC DATABASE LINK hq.sina.com USING 'sales'
CREATE PUBLIC SYNONYM HQ_EMP FOR emp@hq.sina.com;
系統權限和對象權限
授予對象權限時語句應該是WITH GRANT OPTION子句,而在授予系統權象時語句是WITH ADMIN OPTION
對象權限就是指在表、視圖、序列、過程、函數或包等對象上執行特殊動作的權利.有九種不同類型的權限可以授予
給用戶或角色。
系統權限需要授予者有進行系統級活動的能力,如連接數據庫,更改用戶會話、建立表或建立用戶等等
待續...
posted on 2009-12-26 15:54
cheng 閱讀(1399)
評論(1) 編輯 收藏 所屬分類:
Oracle