posts - 188,comments - 176,trackbacks - 0

          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ù)...

          posted on 2009-12-26 15:54 cheng 閱讀(1401) 評(píng)論(1)  編輯  收藏 所屬分類: Oracle

          FeedBack:
          # re: Oracle數(shù)據(jù)庫(kù)常用的操作命令[未登錄](méi)
          2012-04-12 11:09 | ccc
          收藏了 謝謝樓主分享  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 秦皇岛市| 穆棱市| 屯门区| 上饶县| 四平市| 南陵县| 遂溪县| 博湖县| 柘城县| 海南省| 公主岭市| 武穴市| 自贡市| 西充县| 行唐县| 永吉县| 西畴县| 社旗县| 孟津县| 乌兰浩特市| 阿勒泰市| 环江| 平南县| 满城县| 湟中县| 邵武市| 营山县| 金坛市| 泾川县| 定南县| 青川县| 城固县| 衡水市| 黎川县| 固始县| 富阳市| 福建省| 阿拉善盟| 朝阳县| 阜南县| 准格尔旗|