oracle密碼檔案起什麼作用

msdnchina發表於2008-11-25

 

背景介紹,在上一篇日誌裡,我將密碼檔案更名後,在alter database mount時,系統會有報錯提示。但是此時的database 已經被instance載入,也就是說,再執行alter database open ,是能成功的,這個過程如下所示。


SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup nomount;
ORACLE 例程已經啟動。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL> alter database mount;
alter database mount
*
ERROR 位於第 1 行:
ORA-01990: ??????'D:\oracle\ora92\DATABASE\PWDlyl.ORA'???
ORA-27041: ??????
OSD-04002: N^7(4r?*NDO/S-Error: (OS 2) O5M3UR2;5=V86(5DND


SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
lyl              MOUNTED

SQL> alter database open;

資料庫已更改。

SQL>

這就涉及到一個oracle 密碼檔案作用的問題。

以下摘自《ocp認證考試指南全冊》的第46頁,有刪節、新增:

oracle 提供了兩種不基於資料字典的身份驗證方式:作業系統身份驗證方式以及口令檔案驗證方式。

作業系統身份驗證方式:簡單的理解起來,就是依賴oracle 資料庫伺服器所在的作業系統。具體的說,在oracle 軟體的安裝階段(注意不是database 建立階段),要指定擁有 oracle軟體的作業系統使用者組的名稱(unix系統預設為dba,windows系統預設是ORA_DBA),如果作為這個組的一個成員(也就是一個作業系統的使用者了)登陸了oracle 資料庫伺服器所在的作業系統,那麼就會被允許連線和啟動某個例項以及開啟或建立一個沒有任何使用者名稱/口令提示框的資料庫。

寫到這裡,大家也許有疑問,以windows系統為例,我用不屬於ORA_DBA這個作業系統使用者組的使用者登陸oracle 資料庫伺服器所在的作業系統,連線例項,會有什麼提示? 答案是有下邊的提示(注意我是用的remote這個使用者登陸的windows,此使用者不屬於ORA_DBA組):


Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\remote>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 24 20:56:38 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:
ORA-01031: insufficient privileges


請輸入使用者名稱:

/*-----------------完畢----------------*/

 

 

口令檔案驗證方式:用於透過網路啟動例項 和開啟資料庫,而不是直接登陸到oracle 資料庫伺服器所在的作業系統啟動例項和開啟資料庫。

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

相關文章