如何理解Restrict Session與Restricted Mood,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了肅北免費(fèi)建站歡迎大家使用!
查閱Oracle官方文檔,看到SYSDBA和SYSOPER兩個(gè)特殊的系統(tǒng)權(quán)限System Privilege。在兩個(gè)權(quán)限可以進(jìn)行的操作中,有一個(gè)名為Restricted Session的權(quán)限項(xiàng)目,做一下深入的研究。
啟動(dòng)Oracle數(shù)據(jù)庫服務(wù)器,是一個(gè)階段性的操作。大體上分為nomount、mount和Open三個(gè)階段。下面是在linux平臺(tái)上進(jìn)行的分階段啟動(dòng)演示。
//連接到一個(gè)空實(shí)例上,注意,這里驗(yàn)證使用的是OS驗(yàn)證方式;
SQL> conn / as sysdba
Connected to an idle instance.
//nomount狀態(tài)啟動(dòng),實(shí)例進(jìn)程啟動(dòng),SGA空間分配,參數(shù)文件加載;
SQL> startup nomount
ORACLE instance started.
Total System Global Area 414298112 bytes
Fixed Size 1336904 bytes
Variable Size 310380984 bytes
Database Buffers 96468992 bytes
Redo Buffers 6111232 bytes
//控制文件加載應(yīng)用,定位數(shù)據(jù)文件;
SQL> alter database mount;
Database altered.
//打開數(shù)據(jù)庫文件,實(shí)現(xiàn)操作;
SQL> alter database open;
Database altered.
在啟動(dòng)之后,數(shù)據(jù)庫用戶就可以進(jìn)行連接。
啟動(dòng)restricated mode
作為DBA,是可以控制啟動(dòng)階段和進(jìn)程的。不同的階段,可以進(jìn)行不同類型的操作,如備份各種類型文件。
有時(shí)候,我們希望只有特定的一些用戶可以連入數(shù)據(jù)庫,比如管理員級(jí)別用戶。在這種時(shí)候,我們可以使用restricted mode方式啟動(dòng)數(shù)據(jù)庫。
啟用restricted mode方式啟動(dòng)和運(yùn)行數(shù)據(jù)庫后,只有那些具有create session和restricted session權(quán)限的用戶,才能登錄入系統(tǒng)數(shù)據(jù)庫。默認(rèn)情況下,只有SYSDBA和SYSOPER用戶擁有restricted session權(quán)限。意味著只有數(shù)據(jù)庫管理權(quán)限的用戶才能進(jìn)行restricted mode下的數(shù)據(jù)管理工作。
還有一點(diǎn)要注意,在restricted mode下,用戶即使擁有restricted session權(quán)限,只能本地登錄并且不經(jīng)過監(jiān)聽程序才可以。Remote方式登錄是被拒絕的。
通常,在下面的情況下才考慮使用restricted mode進(jìn)行維護(hù)工作。
ü 需要進(jìn)行導(dǎo)入和導(dǎo)出數(shù)據(jù)。這個(gè)過程中,數(shù)據(jù)完整性是不能保證的,最好還是禁止應(yīng)用用戶登入;
ü 使用SQL*Loader進(jìn)行數(shù)據(jù)加載;
ü 臨時(shí)性的拒絕一般用戶連入訪問數(shù)據(jù);
ü 執(zhí)行特定的數(shù)據(jù)移植和升級(jí)操作;
使用startup restrict命令,就可以以restricted mode方式啟動(dòng)數(shù)據(jù)庫。
SQL> startup restrict
ORACLE instance started.
Total System Global Area 414298112 bytes
Fixed Size 1336904 bytes
Variable Size 310380984 bytes
Database Buffers 96468992 bytes
Redo Buffers 6111232 bytes
Database mounted.
Database opened.
此時(shí),從客戶端嘗試登錄。
首先,嘗試在本地local登錄
//本地繞過監(jiān)聽器程序登錄,是通過的。
SQL> conn / as sysdba;
Connected.
SQL> select count(*) from dba_objects;
COUNT(*)
----------
72461
//監(jiān)聽器本地登錄
SQL> conn sys/sys@wilson as sysdba;
ERROR:
ORA-12526: TNS:listener: all appropriate instances are in restricted mode //報(bào)錯(cuò),被拒絕
Warning: You are no longer connected to ORACLE.
//非restricted session權(quán)限用戶
SQL> conn scott/tiger@wilson;
ERROR:
ORA-12526: TNS:listener: all appropriate instances are in restricted mode //連接被拒絕
//本機(jī)非權(quán)限登錄
SQL> conn scott/tiger
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
這次換使用遠(yuǎn)程登錄
SQL> conn sys/sys@wilson as sysdba;
ERROR:
ORA-12526: TNS:監(jiān)聽程序:所有適用例程都處于受限模式
SQL> conn /@wilson as sysdba;
ERROR:
ORA-12526: TNS:監(jiān)聽程序:所有適用例程都處于受限模式
SQL> conn scott/tiger@wilson as sysdba;
ERROR:
ORA-12526: TNS:監(jiān)聽程序:所有適用例程都處于受限模式
試驗(yàn)結(jié)果比較怪異,
1、restricted mode是一種連接模式,似乎受到監(jiān)聽器的攔截;
2、繞過監(jiān)聽器程序之后,要進(jìn)行權(quán)限驗(yàn)證;
兩個(gè)條件均滿足,驗(yàn)證了用戶是具有權(quán)限,且是登錄本地的用戶。
監(jiān)聽器狀態(tài)有什么特殊的嗎?
[oracle@oracle11g ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-JAN-2011 15:23:08
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle11g)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 04-JAN-2011 14:55:16
Uptime 0 days 0 hr. 27 min. 52 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/network/admin/listener.ora
Listener Log File /u01/diag/tnslsnr/oracle11g/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle11g)(PORT=1521)))
Services Summary...
Service "wilson" has 1 instance(s).
Instance "wilson", status RESTRICTED, has 1 handler(s) for this service...
Service "wilsonXDB" has 1 instance(s).
Instance "wilson", status RESTRICTED, has 1 handler(s) for this service...
The command completed successfully
看到,監(jiān)聽器對(duì)于數(shù)據(jù)庫的狀態(tài)是了解的。這樣就可以理解監(jiān)聽器報(bào)錯(cuò)12526了。
恢復(fù)狀態(tài)
通過alter system命令,可以將數(shù)據(jù)庫系統(tǒng)從restricted mode轉(zhuǎn)化回正常模式。
SQL> alter system disable restricted session;
System altered.
//稍稍等待一下,因?yàn)閯?dòng)態(tài)注冊(cè)可能需要一會(huì)更新
SQL> conn scott/tiger@wilson;
Connected.
SQL> select count(*) from emp;
COUNT(*)
----------
14
Open狀態(tài)的系統(tǒng)限制訪問
在數(shù)據(jù)庫處在open狀態(tài)的時(shí)候,我們也可以通過alter system命令,強(qiáng)行將系統(tǒng)模式轉(zhuǎn)化到restricted mode。命令為:
SQL> alter system enable restricted session;
System altered.
這時(shí),系統(tǒng)會(huì)轉(zhuǎn)入到restricted模式。注意,這個(gè)時(shí)候是可能有其他session正在連入數(shù)據(jù)庫,不同的結(jié)構(gòu)是由不同的處理方式的。
ü 在單實(shí)例的環(huán)境中,如果系統(tǒng)沒有安裝Oracle Restart(Oracle管理一個(gè)工具),所有用戶會(huì)話都不會(huì)受到影響。所以,在轉(zhuǎn)換到restricted mode之后,進(jìn)行管理工作之前,要手工的kill掉所有的用戶會(huì)話;
ü 在單實(shí)例的環(huán)境中,如果有Oracle Restart組件,所有被Oracle Restart管理的服務(wù)都被做離線處理,所有user session自動(dòng)終止。沒有被Restart管理的服務(wù)的連接,是不會(huì)離線的;
ü RAC環(huán)境下,實(shí)例的服務(wù)都是被Oracle Clusterware管理,都會(huì)自動(dòng)終止掉。沒有被Clusterware管理的組件,是不會(huì)離線處理的;
Restricted Mode是一種管理工具,在管理生產(chǎn)環(huán)境的時(shí)候還是比較實(shí)用的。
看完上述內(nèi)容,你們掌握如何理解Restrict Session與Restricted Mood的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
新聞名稱:如何理解RestrictSession與RestrictedMood
本文URL:http://aaarwkj.com/article6/jjjiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航、做網(wǎng)站、全網(wǎng)營銷推廣、微信小程序、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)