淺談Oracle的受限模式(Restricted Mode)

xysoul_雲龍發表於2015-05-20

淺談Oracle 的受限模式(Restricted Mode

一、 概述

Oracle 資料庫中,通常我們用v$instance 檢視資料庫狀態以及其他資訊,在v$instance 中,有一列為logins ,取值有兩個,一個是ALLOWED  ,另一個是RESTRICTED

   一般情況下,我們檢視資料庫狀態,獲取的logins 值為ALLOWED  ,那麼RESTRICTED 又是什麼情況呢,下面我們做一下簡單瞭解。

二、 過程
   我們先看一下contents 中部分說明
 

Restricted Mode of Instance Startup

You can start an instance in restricted  mode (or later alter an existing instance to be in restricted mode). This  restricts connections to only those users who have been granted the RESTRICTED SESSION system privilege.


這是Oracle 資料庫的一種狀態,受限模式(Restricted Mode) ,如果資料庫管理員將資料庫的狀態設定為Restricted Mode ,那麼只能是擁有restrict 許可權的使用者(受限特權的使用者),才能夠連線到資料庫進行操作。Restricted Mode (受限模式)通常用於資料庫管理員在維護資料庫的時候使用。Restricted Mode 限制新的沒有許可權的使用者登入進來,但是如果一個沒有Restricted Mode 許可權的使用者在設定Restricted Mode 之前已經登入到了Oracle 那麼該使用者仍然擁有運算元據庫的許可權,即Restricted Mode 不妨礙已經登入進來的使用者繼續執行操作。

 

  下面我們實驗測試
檢視資料庫版本,狀態、模式

SQL> select banner from v$version;

 

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release  11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE     11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

 

SQL> select status,instance_name,logins from  v$instance;

 

STATUS        INSTANCE_NAME    LOGINS

------------ ---------------- ----------

OPEN         firsoul          ALLOWED


建立測試使用者,並修改資料庫模式,嘗試連線

SQL> create user firsoul identified by firsoul;

 

User created.

 

SQL> grant connect,resource to firsoul;

 

Grant  succeeded.

SQL> alter system enable restricted  session;

 

System  altered.

 

SQL> select status,instance_name,logins  from v$instance;

 

STATUS       INSTANCE_NAME    LOGINS

------------  ---------------- ----------

OPEN          firsoul          RESTRICTED
SQL> conn system/oracle

Connected.

SQL> conn firsoul/firsoul

ERROR:

ORA-01035: ORACLE only available to users with  RESTRICTED SESSION privilege

 

Warning: You are no longer connected to  ORACLE.

 

將許可權restricted session 賦予使用者firsoul ,再次嘗試連線

SQL> grant restricted session to firsoul;

 

Grant succeeded.

 

SQL> conn firsoul/firsoul

Connected.


收回使用者firsoul 許可權,再賦予其dba 許可權

SQL> conn / as sysdba

Connected.

SQL> revoke restricted session from firsoul;

 

Revoke succeeded.

 

SQL> grant dba to firsoul;

 

Grant succeeded.

 

SQL> conn firsoul/firsoul

Connected.


收回dba 許可權,使用restricted mode 之前連線的session 對使用者firsoul 操作

SQL> conn firsoul/firsoul

Connected.

SQL> insert into t values(1);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL>

SQL> insert into t values(2);

 

1 row created.

 

SQL> commit;

 

三、 總結

   透過以上,我們得知,如果想資料庫設定為Restricted Mode ,只有管理員(dba )以及有restricted session 許可權才可以連線使用者。在修改為 Restricted Mode 後,之前連線使用者不受影響,新使用者不能連線。學習資料庫中,有許多小知識點,我們透過簡單的小實驗就可以呈現、更好的掌握、理解它。話說,還有許多基礎類的小知識點需要掌握啊,技術不分高低,態度決定一切,加油。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-1663945/,如需轉載,請註明出處,否則將追究法律責任。

相關文章