帶您了解ORACLE用戶驗證機制
ORACLE用戶驗證的機制關系到ORACLE數據庫的安全,下面就為您詳細介紹ORACLE用戶驗證機制,如果您對此感興趣的話,不妨一看。
系統安全一直是各個系統關注的首要問題,而ORACLE用戶驗證是其中很重要的一環。一般應用程序習慣性地將用戶驗證放在數據庫中,通過比對用戶的輸入與數據庫記錄來驗證用戶,但數據庫自身如何來驗證呢?ORACLE用戶可以分為SYS用戶和普通用戶,他們的驗證方式有所區別
一、SYS用戶驗證
SYS用戶擁有數據庫的完全控制權,對其驗證顯得至關重要。由于進行驗證時數據庫還不可用,ORACLE采用兩種方式來驗證SYSDBA用戶:操作系統驗證和口令文件驗證。
1. 操作系統驗證
對于在安裝Oracle的本機上使用Oracle的情況,Oracle可以將用戶驗證交給操作系統,只要登錄操作系統的用戶在DBA組里,就有SYS用戶的權限,可以修改 $ORACLE_HOME/dbs/sqlnet.ora,加入如下行:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
操作系統驗證具有***優先級,當設置為他時,口令文件驗證不起作用
2. 口令文件驗證
要使用口令文件驗證,首先得禁用操作系統驗證,修改 $ORACLE_HOME/network/admin/sqlnet.ora,加入如下行(這里將$ORACLE_HOME轉化為絕對路徑):
SQLNET.AUTHENTICATION_SERVICES= (NONE)
其次是設置口令驗證配置參數:remote_login_passwordfile,他可以有幾個值,其含義如下
-- none 不使用口令驗證
-- exclusive 僅允許一個實例使用該口令文件
--shared 多個實例可以共用一個口令文件
這里將參數設置為獨占:
alter system set remote_login_passwordfile=exclusive scope=spfile;
shutdown immediate
使用口令實用程序生成口令文件
orapwd file= $ORACLE_HOME/database/pwdora10g.ora password=oracle
此時嘗試以不同方式登錄數據庫
sqlplus / as sysdba-----------------權限不足
sqlplus sys/oracle as sysdba---------------使用口令驗證方式,登錄成功
二、普通ORACLE用戶驗證
之前講了SYS用戶的驗證,那么普通用戶如何驗證?
SYS用戶是在數據庫還沒啟動時登錄數據庫進行啟動操作,而普通用戶是在數據庫啟動后操作不同方案下的對象。
所以普通用戶采用的是數據字典的驗證方式:
select username,password from dba_users;
可以看到所有用戶和密碼
【編輯推薦】