小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

詳解如何實(shí)現(xiàn)Oracle修改用戶權(quán)限 - Oracle - 數(shù)據(jù)庫(kù) - TechWeb-技...

 葉非常 2011-03-07

[轉(zhuǎn)貼] 詳解如何實(shí)現(xiàn)Oracle修改用戶權(quán)限

這里將介紹Oracle修改用戶權(quán)限的實(shí)現(xiàn)過程,包括一些權(quán)限管理方面的東西。希望通過本文能對(duì)大家了解Oracle修改用戶權(quán)限有所幫助。, @3 p6 d. R! c" S9 \
ORACLE數(shù)據(jù)庫(kù)用戶與權(quán)限管理; }/ g4 s: f8 u, K8 N
ORACLE是多用戶系統(tǒng),它允許許多用戶共享系統(tǒng)資源。為了保證數(shù)據(jù)庫(kù)系統(tǒng)的安全,數(shù)據(jù)庫(kù)管理系統(tǒng)配置了良好的安全機(jī)制。
* h' W, o! O: {+ u# @2. 1 ORACLE數(shù)據(jù)庫(kù)安全策略- J" J) g. J2 G% I  J' b0 |
建立系統(tǒng)級(jí)的安全保證 7 V0 `; ]7 _& j/ ~% Q1 c9 Z# U
系統(tǒng)級(jí)特權(quán)是通過授予用戶系統(tǒng)級(jí)的權(quán)利來(lái)實(shí)現(xiàn),系統(tǒng)級(jí)的權(quán)利(系統(tǒng)特權(quán))包括:建立表空間、建立用戶、修改用戶的權(quán)利、刪除用戶等。系統(tǒng)特權(quán)可授予用戶,也可以隨時(shí)回收。ORACLE系統(tǒng)特權(quán)有80多種。
4 E6 r* |9 @9 C. M0 ]8 n" Z建立對(duì)象級(jí)的安全保證
% Q5 Y7 E% {% \! z, |9 V$ s對(duì)象級(jí)特權(quán)通過授予用戶對(duì)數(shù)據(jù)庫(kù)中特定的表、視圖、序列等進(jìn)行操作(查詢、增、刪改)的權(quán)利來(lái)實(shí)現(xiàn)。3 F3 H. g1 z% z) ^8 C! J: v
建立用戶級(jí)的安全保證
5 x" b) w- U: E' ?3 Z用戶級(jí)安全保障通過用戶口令和角色機(jī)制(一組權(quán)利)來(lái)實(shí)現(xiàn)。引入角色機(jī)制的目的是簡(jiǎn)化對(duì)用戶的授權(quán)與管理。做法是把用戶按照其功能分組,為每個(gè)用戶建立角色,然后把角色分配給用戶,具有同樣角色的用戶有相同的特權(quán)。
* m' {% B6 Q4 v9 U2.2 用戶管理
9 k  I& X" X6 v5 W" K: k$ v# X; kORACLE用戶管理的內(nèi)容主要包括用戶的建立、修改和刪除) K8 O8 b* Q0 l
用戶的建立 " y( D& d+ l0 C( Y5 u" N
  • SQL>CREATE# f; U# E  X; K. O6 n; W
    USER jxzy  
  • >IDENTIFIED BY jxzy_password  
  • >DEFAULT TABLESPACE system  
  • >QUATA 5M ON system; //供用戶使用的最大空間限額
Oracle修改用戶權(quán)限 2 B; K. Z# ?* C  @; h( A
  • SQL>CREATE' ]2 A. `$ ^0 v( ~
    USER jxzy  
  • >IDENTIFIED BY jxzy_pw  
  • >QUATA 10M ON system;
刪除用戶及其所建對(duì)象
) u  M8 u/ K! M. ]+ R
  • SQL>DROP
    ( G# e  S( g1 k5 V. PUSER jxzy CASCADE; //同時(shí)刪除其建立的實(shí)體
2.3系統(tǒng)特權(quán)管理與控制
  z9 [) A) ~8 {4 `ORACLE 提供了80多種系統(tǒng)特權(quán),其中每一個(gè)系統(tǒng)特權(quán)允許用戶執(zhí)行一個(gè)或一類數(shù)據(jù)庫(kù)操作。
; [% G" t5 K3 e* a5 V! f1 p授予系統(tǒng)特權(quán)
+ _( c" _- J+ t0 K7 D/ C1 z
  • SQL>GRANT
    ' [( ?4 b9 b7 _* J. F: I- ?- I! ?$ xCREATE7 a! v( o8 x, x. @
    USER,ALTER% U1 B$ m4 J( u" T# F
    USER,DROP! F0 K! S, @8 H( k1 y' u8 z$ B' X
    USER; y" A4 |0 H* d- C3 h4 U9 s2 P
  • >TO jxzy_new  
  • >WITH ADMIN OPTION;
回收系統(tǒng)特權(quán) & `- r: z9 M, s2 z( y
  • SQL>REVOKE
    $ Z7 s! x% G9 [: G6 q; qCREATE
    " ]# c/ ~" }* S4 ?/ @/ eUSER,ALTER0 O! T1 B& B, y
    USER,DROP% j: H, Q1 m. Q) \9 j; ?
    USER9 e/ @: [& g- f/ v
  • >FROM jxzy_new  
  • //但沒有級(jí)聯(lián)回收功能
顯示已被授予的系統(tǒng)特權(quán)(某用戶的系統(tǒng)級(jí)特權(quán)) 0 O+ _9 F7 O% F
  • SQL>SELECT*FROM sys.dba_sys_privs
2.4 對(duì)象特權(quán)管理與控制2 B) o! f9 E7 A9 b. S  O4 D& {
ORACLE對(duì)象特權(quán)指用戶在指定的表上進(jìn)行特殊操作的權(quán)利。這些特殊操作包括增、刪、改、查看、執(zhí)行(存儲(chǔ)過程)、引用(其它表字段作為外鍵)、索引等。
& z) E6 P: f, A" X. @授予對(duì)象特權(quán)
1 g) B: I8 U5 V" R
  • SQL>GRANT: q$ {  `% O2 f! t% K" z
    SELECT,INSERT(office_num,office_name),  
  • >UPDATE(desc)ON office_organization  
  • >TO new_adminidtrator  
  • >WITH
    , \! }$ D% h8 A! P9 |( U+ D3 W5 YGRANT
    - O6 B) k2 f8 Q# OOPTION;  
  • //級(jí)聯(lián)授權(quán)  
  • SQL>GRANT( w* J" M* }% }! |/ p( Y/ Y
    ALL
    7 ^: B' Q6 H& T7 U$ h( Z9 rON office_organization  
  • >TO new_administrator
回收對(duì)象特權(quán) . T( ^' o1 A$ }3 Y4 n* w8 U. ~2 w
  • SQL>REVOKE1 _3 s& `  X" w, z: d
    UPDATE
    + C+ t/ V! O! T/ b' G" L: U. RON office_orgaization  
  • >FROM new_administrator  
  • //有級(jí)聯(lián)回收功能  
  • SQL>REVOKE
    # ~" `7 A6 b4 S& ?5 X# lALL1 y3 V% k) G/ ~9 n5 n% ]2 p
    ON office_organization  
  • >FROM new_administrator  
顯示已被授予的全部對(duì)象特權(quán) . E' T/ e  I8 T7 o) A2 F! L) W
  • SQL>SELECT*FROM sys.dba_tab_privs
2.5 角色的管理
6 p! c* U' X, kORACLE的角色是命名的相關(guān)特權(quán)組(包括系統(tǒng)特權(quán)與對(duì)象特權(quán)),ORACLE用它來(lái)簡(jiǎn)化特權(quán)管理,可把它授予用戶或其它角色。
0 ^9 T4 e( K2 h& |7 i+ v# uORACLE數(shù)據(jù)庫(kù)系統(tǒng)預(yù)先定義了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、 IMP_FULL_DATABASE五個(gè)角色。CONNECT具有創(chuàng)建表、視圖、序列等特權(quán);RESOURCE具有創(chuàng)建過程、觸發(fā)器、表、序列等特權(quán)、DBA具有全部系統(tǒng)特權(quán);EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出與裝入數(shù)據(jù)庫(kù)的特權(quán)。
4 M% w: W) H$ s& a4 B通過查詢sys.dba_sys_privs可以了解每種角色擁有的權(quán)利。
, h$ N1 P: l* ?; C/ H授予用戶角色
7 @6 P9 K4 C- f
  • SQL>GRANT DBA TO new_administractor  
  • >WITH
    . {. V: o- T" U8 |4 [$ w  I, NGRANT; S2 I+ z! L& r$ |% c, {5 m3 Z2 o
    OPTION;  
  • ==============================================================
Oracle 的用戶根據(jù)所被授予的權(quán)限分為系統(tǒng)權(quán)限和對(duì)象權(quán)限。其中最高的權(quán)限是sysdba。 Sysdba具有控制Oracle一切行為的特權(quán),諸如創(chuàng)建、啟動(dòng)、關(guān)閉、恢復(fù)數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)歸檔/非歸檔,備份表空間等關(guān)鍵性的動(dòng)作只能通過具有sysdba權(quán)限的用戶來(lái)執(zhí)行。這些任務(wù)即使是普通DBA角色也不行。Sysoper是一個(gè)與sysdba相似的權(quán)限,只不過比sysdba少了SYSOPER privileges WITH ADMIN OPTION,CREATE DATABASE,RECOVER DATABASE UNTIL這幾個(gè)權(quán)限而已。這兩者的認(rèn)證方式是相同的辦法,所以下面只介紹sysdba的認(rèn)證管理。
4 Y$ T& `) }6 P4 @! u/ A7 G4 _. P' e一般對(duì)sysdba的管理有兩種方式: *** 作系統(tǒng)認(rèn)證和密碼文件認(rèn)證。具體選擇那一種認(rèn)證方式取決于:你是想在Oracle運(yùn)行的機(jī)器上維護(hù)數(shù)據(jù)庫(kù),還是在一臺(tái)機(jī)器上管理分布于不同機(jī)器上的所有的Oracle數(shù)據(jù)庫(kù)。若選擇在本機(jī)維護(hù)數(shù)據(jù)庫(kù),則選擇 *** 作系統(tǒng)認(rèn)證可能是一個(gè)簡(jiǎn)單易行的辦法;若有好多數(shù)據(jù)庫(kù),想進(jìn)行集中管理,則可以選擇password文件認(rèn)證方式。 9 A( |& V0 S$ C/ [8 J9 L4 J( P9 |
下圖比較直觀的說明了這個(gè)選擇權(quán)衡過程: / B6 @. W' `# ?, ?0 Q7 p
使用 *** 作系統(tǒng)認(rèn)證方式的配置過程:
2 |5 _: j' I7 b+ ^7 _; k$ F1. 在 *** 作系統(tǒng)中建立一個(gè)合法帳戶。 ) p( k0 e' L+ X3 ], X
具體來(lái)說,在NT上,首先建立一個(gè)本地用戶組,取名為ORA__DBA,其中SID為該數(shù)據(jù)庫(kù)實(shí)例的SID,或者建立一個(gè)ORA_DBA地組,該組不對(duì)應(yīng)于任何一個(gè)單獨(dú)的Oracle實(shí)例。這樣當(dāng)一個(gè)NT上有好幾個(gè)Oracle實(shí)例時(shí),不用分別管理。然后再NT上建立一個(gè)用戶,并且把它歸入該組中。但是實(shí)際上這兩步在Oracle8I安裝過程中已經(jīng)自動(dòng)完成了,一般不用手動(dòng)進(jìn)行。
! O, H. o& \/ a2 C第三步:在sqlnet.ora(位于$ORACLE_HOME/NETWORK/ADMIN目錄中)中,把SQLNET.AUTHENTICATION _SERVICES 設(shè)置為SQLNET.AUTHENTICATION_SERVICES= (NTS),意思為使用NT認(rèn)證方式。
5 U1 [. C( }' ?  s第四步,在INIT.ORA中,把REMOTE_LOGIN_PASSWORD設(shè)置為NONE,意思是不用password認(rèn)證方式。 8 X# \0 _, w7 j4 `5 Y7 i
完成以上步驟后,就可以在登錄到NT后,直接在SQL*Plus 和SERVER MANAGER中CONNECT INTERNAL (CONNECT / AS SYSDBA)來(lái)作為超級(jí)用戶登錄到Oracle中,執(zhí)行一些只有超級(jí)用戶才能進(jìn)行的 *** 作。
: B1 W1 `1 B3 n' A! g在Unix下,情況有些不同。畢竟這是兩個(gè)完全不同的 *** 作系統(tǒng)。
  G5 a: w% M6 s+ A6 Y' K; N首先,在安裝Oracle之前,建立一個(gè)DBA組,這一步不用說了,不然是裝不上Oracle的。一般還建立一個(gè)名為Oracle的用戶,并把它加入到DBA組中。
4 S0 J# c3 T. c' Z7 K$ h4 a6 {第二步, 設(shè)置REMOTE_LOGIN_PASSWORD為NONE。在Oracle8.1以后,該參數(shù)默認(rèn)為EXCLUSIVE。一定要記得改過來(lái)。
5 p8 y* i. |1 X$ @第三步, 用該用戶名登錄Unix,運(yùn)行SQL*Plus 或者SERVER MANAGER,輸入以下命令:CONNECT INTERNAL(CONNECT / AS SYSDBA)來(lái)登錄到Oracle中。 : v( @$ N6 T5 e- {, ~9 z2 P" @
使用password文件認(rèn)證的具體步驟: / @) g, w/ |* I9 @, e
Oracle提供orapwd實(shí)用程序來(lái)創(chuàng)建password 文件,運(yùn)用orapwd建立該認(rèn)證方式的具體步驟如下:
" @5 E' p% n# v; K9 U+ Z) A  s3 x1. 使用Orapwd實(shí)用程序來(lái)創(chuàng)建一個(gè)PASSWORD文件。語(yǔ)法:
: h2 `) {) C1 K5 K6 Forapwd file=文件名 password=internal用戶密碼 entried=entries.
# r9 g, P$ o; P: ^; Q7 h. z  N詳細(xì)解釋: , B8 W9 A( y; ^' M
文件名要包含完整的全路徑名,如果不指定,Oracle把它默認(rèn)放置$ORACLE_HOME/dbs(Unix下)或者$ORACLE_HOME/DATABASE(NT下)下。 7 y" s5 d, v& V
用戶密碼是用戶internal的密碼。當(dāng)然后來(lái)還可以再向里邊加入別的超級(jí)用戶。
2 L3 O" V6 a8 e; q3 M4 AEntries表示最大允許有的超級(jí)用戶數(shù)目。這個(gè)是一個(gè)可選的。前兩者是必須指定的。一般會(huì)把它設(shè)置的比實(shí)際需要大一些,以免不夠。
. q" V, e; b3 V9 z* d- H2. 把INIT.ORA中REMOTE_LOGIN_PASSWORD設(shè)置為EXCLUSIVE 或SHARED.使用EXCLUSIVE表示只有當(dāng)前INSTANCE使用這個(gè)password文件。而且允許有別的用戶作為sysdba登錄進(jìn)系統(tǒng)里邊,而若選擇了SHARED,則表明不止一個(gè)實(shí)例使用這個(gè)密碼文件,伴隨著一個(gè)很強(qiáng)的約束:sysdba權(quán)限只能授予sys和internal這兩個(gè)用戶名。(其實(shí)internal不是一個(gè)實(shí)際用戶,而只是sys作為sysdba登錄時(shí)的一個(gè)別名。)
8 ^3 d/ `) Z% B  \; x# a) [% t8 c同時(shí)還要記得把sqlnet.ora文件中SQLNET.AUTHENTICATION _SERVICES設(shè)置為NONE。一般在Unix下它是默認(rèn)設(shè)置。在NT下,若選擇典型安裝時(shí),會(huì)使用OS認(rèn)證,而自定義時(shí)會(huì)使用密碼文件認(rèn)證方式。在安裝過程中會(huì)提示輸入INTERNAL密碼。這樣的話,就不用在手工創(chuàng)建密碼文件和設(shè)定INTERNAL的密碼了。
" |; H' ^' C2 V  }4 M/ {- b3. 用SQL*Plus 或SERVER MANAGER運(yùn)行下面命令登錄進(jìn)系統(tǒng):CONNECT INTERNAL/密碼。
5 _, ~& q( ?& _/ q+ Z" v9 [7 S! ?
0 n4 n" p- w3 s+ v# v8 Y注意點(diǎn):
: o0 |" ?3 y- t" o# l$ j1.在Oracle8.1.6安裝在WIN2000下創(chuàng)建數(shù)據(jù)庫(kù)時(shí),常常會(huì)發(fā)生憑證檢索失敗的錯(cuò)誤。這是由于Oracle不能應(yīng)用OS認(rèn)證的結(jié)果。一般可以通過修改sqlnet.ora中SQLNET.AUTHENTICATION _SERVICES為NONE來(lái)解決。這時(shí),Oracle將采用密碼文件認(rèn)證方式。 - g% E+ L1 c5 h0 w& O& n
2.由于Oracle有幾個(gè)系統(tǒng)預(yù)建的用戶,所以最好在安裝完成以后馬上改變這些用戶的密碼。系統(tǒng)默認(rèn)得密碼分別為:internal/oracle , sys/change_on_install, system/manager.
5 `) k% D  L3 y& A& N# ~  }3.當(dāng)選擇密碼文件認(rèn)證方式時(shí),可以再向系統(tǒng)中加入其他超級(jí)用戶。比如用以下語(yǔ)句把用戶SCOTT加入超級(jí)用戶之中:(由具有sysdba權(quán)限的人執(zhí)行) # H, N# t, z* b/ r( [% i, o
SQL>GRANT SYSDBA TO SCOTT;這樣SCOTT用戶就具有了sysdba權(quán)限。注意,此時(shí)SCOTT用戶可以以兩種身份登錄:SCOTT , SYS.當(dāng)SCOTT在登錄時(shí)沒有輸入AS SYSDBA時(shí),SCOTT是作為普通用戶登錄的。而當(dāng)?shù)卿洉r(shí)輸入了AS SYSDBA時(shí),此時(shí)SCOTT登錄進(jìn)去的用戶實(shí)際上為sys。 ; g. m3 }4 T# D
4. 當(dāng)前系統(tǒng)中的具有sysdba權(quán)限的用戶名可以從數(shù)據(jù)字典視圖v$pwfile_user中查詢得到:
% [) o; z& T; U+ ], O. _SELECT * FROM V$PWFILE_USERS; 如上圖所示。
9 B1 O  E$ f, Q) [8 v5. 系統(tǒng)中最大的具有sysdba權(quán)限的用戶數(shù)由創(chuàng)建密碼文件時(shí)的ENTRIES參數(shù)決定。當(dāng)需要?jiǎng)?chuàng)建更多的具有sysdba權(quán)限的用戶時(shí),就需要?jiǎng)h除原有的密碼文件,重新創(chuàng)建一個(gè)。這需要關(guān)閉數(shù)據(jù)庫(kù),刪除密碼文件,重新創(chuàng)建一個(gè)新的密碼文件,在entries中輸入足夠大的數(shù)目。再啟動(dòng)Oracle。這時(shí),所有原來(lái)北授權(quán)的超級(jí)用戶都不再存在,需要重新授權(quán)。所以在重新創(chuàng)建密碼文件前,先要查詢?cè)撘晥D,記下用戶名,再在創(chuàng)建完密碼文件后重新授權(quán)。   L. N( m& y: s3 D# I
6. Internal用戶密碼忘記的處理方法:
4 z1 V, x# N' U8 V! J3 u% W/ D有兩種辦法: 3 J0 |" K+ H( \' k: b: S
1. ALTER USER SYS IDENTIFIED BY 新密碼;//這同時(shí)也改變了Internal的密碼,在Oracle8I中通過 + W! G, Y" w9 G, v/ W5 d* z
2. 重新創(chuàng)建一個(gè)新的密碼文件,指定一個(gè)新的密碼。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多