oracle中使用者登入的驗證方法

eric0435發表於2014-04-04

oracle資料庫中使用者登入資料庫時可以使用以下兩種使用者審計方法:
1.作業系統審計
2.密碼檔案審計

作業系統審計
在osdba和osper兩個特定作業系統組中的成員能讓dba透過作業系統來審計資料庫而不用使用使用者名稱和密碼.這就是作業系統稽核.這些作業系統組通常指osdba和osoper.這些組在資料庫安裝過程中被建立.他們的名字根據作業系統的不同有所不同

Operating System Group UNIX User Group Windows User Group
OSDBA dba ORA_DBA
OSOPER oper ORA_OPER

當oracle universal Installer使用這些預設的名字,但是可以覆蓋它們.覆蓋它們的一個理由是在相同的主機上執行多個例項.如果每一個例項有一個不同的人作為dba,可以透過對每一個例項建立一個不同的osdba組來提高每一個例項的安全性.例如,在相同主機上有兩個例項,第一個例項的osdba組叫dba1,第二個例項的osdba組叫dba2.第一個dba是dba1的成員,第二個dba是dba2的成員.因此使用作業系統審計每一個dba將能夠只連線到指派給它的例項.

在osdba或osoper組中的成員用以下方法來影響連線資料庫方式:
如果你是osdba組的成員,當連線資料庫時可以指定as sysdba,然後將以sysdba系統許可權連線到資料庫

如果你是osoper組的成員,當連線資料庫時可以指定as sysoper,然後將以sysoper系統許可權連線到資料庫

如果你不是這些作業系統組中的成員當你試圖以sysdba或者sysoper進行連線時connect命令會失敗

為了對一個管理使用者啟用作業系統審計:
1.對這個使用者建立一個作業系統賬號
2.將這個賬號新增到osdba或osoper作業系統組中

使用作業系統審計進行連線
一個使用者作為管理員透過作業系統審計來連線到本地資料庫可以透過以下命令來實現:
connect / as sysdba
connect / as sysoper
對於windows平臺,遠端作業系統審計是一個安全連線被支援.但是必須指定遠端資料庫的網路服務名
CONNECT /@net_service_name AS SYSDBA
CONNECT /@net_service_name AS SYSOPER
而且客戶端計算機和資料庫主機必須在一個windows域中

密碼檔案審計
為了對一個管理使用者啟用密碼檔案審計必須執行以下操作:
1.如果沒有建立密碼檔案使用orapwd工具建立一個密碼檔案:
orapwd file=filename entries=max_users
注意:
當使用DBCA來作為資料庫安裝的一部分時dbca將會建立一個密碼檔案
從oracle 11gR1開始,密碼檔案中的密碼是區分大小寫的除非你在命令列引數加入IGNORECASE=Y

2.將初始化引數remote_login_passwordfile設定為exclusive(這是預設值)

3.使用sys使用者連線到資料庫(或者其它有管理許可權的使用者)

4.如果資料庫中這個使用者不存在,可以建立使用者並指定密碼
注意從oracle11gR1開始,資料庫密碼是區分大小寫的(可以將sec_case_sensitive_logon設定為false來禁用區分大小寫的功能)

5.給使用者授予sysdba或sysoper系統許可權
grant sysdba to oe;
這具語句將使用者加入到密碼檔案中因此啟用了as sysdba連線選項

管理員使用者透過使用SQL*Plus connect命令可以連線到一個本地或遠端資料庫.它們必須使用它們的使用者名稱和密碼以及as sysdba或as sysoper子句來連線.從oracle11gR1開始密碼是區分大小寫的,只有在建立密碼檔案時使用IGNOECASE=Y選項才能禁用密碼區分大小寫這個功能

例如,使用者已經被授予了sysdba許可權,所以oe可以以下面的形式進行連線:
connect os as sysdba
SQL> grant sysdba to oe;

Grant succeeded.

SQL> conn oe as sysdba
Enter password:
Connected.

然而使用者oe沒用被授予sysoper許可權所以下面的命令將會失敗:
CONNECT oe AS SYSOPER

注意:作業系統審計優先於密碼檔案審計.尤其如果你是osdba或osoper作業系統組的成員而以sysdba或sysoper連線時,你將以管理許可權進行連線而不管你指定的username/password

如果你不是osdba或osoper組的成員且在密碼檔案中也不存在,那麼試圖以sysdba或sysoper連線時會失敗

建立和管理密碼檔案
可以使用密碼檔案建立工具orapwd來建立一個密碼檔案.對於有些作業系統可以建立密碼檔案作為標準安裝的一部分

使用orapwd工具來建立一個密碼檔案
orapwd命令的語法如下:
ORAPWD FILE=filename [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]

file:指定密碼檔名稱,必須提供完全路徑.如果只提供檔名,這個檔案將會寫在當前目錄下.

entries:密碼檔案中允許的最大的條目數(使用者賬號)

force:如果為y允許覆蓋已經存在的密碼檔案
ignorecase:如果為y密碼將會是大小寫敏感的
在(=)字元周圍不允許空隔
這個命令會提示輸入sys密碼並將密碼儲存在密碼檔案.

下面的命令建立一個名為orapworcl密碼檔案允許有30個密碼不同的許可權使用者
orapwd file=orapworcl entries=30

[oracle@jyrac1 ~]$ ls -lrt
total 4
drwxr-x--- 3 oracle oinstall 4096 Mar 24 13:27 oradiag_oracle
[oracle@jyrac1 ~]$ orapwd file=orapworcl entries=30

Enter password for SYS:
[oracle@jyrac1 ~]$ ls -lrt
total 12
drwxr-x--- 3 oracle oinstall 4096 Mar 24 13:27 oradiag_oracle
-rw-r----- 1 oracle oinstall 5120 Apr 4 08:49 orapworcl

orapwd命令列引數的描述
file:這個引數設定將要建立的密碼檔名稱.對這個檔案必須指定完全路徑.這個檔案的內容被加密儲存且檔案不能直接被讀取.這個引數是強制性引數

密碼檔案的檔名是作業系統特定的.有些作業系統要求密碼檔案堅持一種特定格式並儲存在特定目錄.其它的作業系統允許使用環境變理來指定密碼檔案的名稱和位置

下面的表格列出了在unix,linux和windows平臺下密碼檔案所要求的名稱和位置.
表1-1
-------------------------------------------------------------
平臺 要求的名稱 要求的位置
-------------------------------------------------------------
unix and linux orapwORACL_SID ORACLE_HOME/dbs
Windows PWDORACLE_SID.ora ORACLE_HOME\database
-------------------------------------------------------------

例如,對於一個sid為orcldw的資料庫例項,密碼檔案在linux平臺下名稱必須為orapworcldw,在windows平臺上名稱必須為PWDorcldw.ora

在oracle rac環境中要求設定一個環境變數來設定密碼檔案的路徑,每一個例項的環境變數指向相同的密碼檔案

注意:保護密碼檔案和標識密碼檔案位置的環境變數對於系統安全至關重要.任何使用者可能會執行威脅安全的連線

entries:這個引數指定密碼檔案可以接受的最大條目數.這個數字對應允許以sysdba或sysoper許可權連線到資料庫的不同使用者的個數.可以透過v$pwfile_users檢視來檢視資料庫中可以以sysdba或sysoper許可權連線到資料庫的使用者個數
SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
OE TRUE FALSE FALSE

密碼檔案中實際允許儲存的密碼條目數可能比指定的數大,因為orapwd工具會繼續儲存密碼條目直到一個作業系統塊被填滿為止.例如,如果作業系統塊大小是512位元組,它將儲存四個密碼條目.允許的密碼條目數總是4的倍數.

當使用者被新增到密碼檔案中或從密碼檔案中刪除使用者時條目可以重用.如果打算指定remote_login_passwordfile=exclusive且允許給使用者授予sysdba和sysoper許可權那麼這個引數是必須要指定的.

注意:當你超過允許的密碼條目數時你必須建立一個新的密碼檔案.為了避免這個問題你允許分配的密碼條目數必須比你期望的密碼條目數大.

force:這個引數如果說設定為y將能夠覆蓋一個已經存在的密碼檔案.當這個引數被忽略或者被設定為n時如果已經存在一個同名的密碼檔案就會返回一個錯誤資訊.
[oracle@jyrac1 ~]$ orapwd file=orapworcl entries=30

Enter password for SYS:

OPW-00005: File with same name exists - please delete or rename
[oracle@jyrac1 ~]$ orapwd file=orapworcl entries=30 force=n

Enter password for SYS:

OPW-00005: File with same name exists - please delete or rename
[oracle@jyrac1 ~]$ orapwd file=orapworcl entries=30 force=y

Enter password for SYS:

ignorecase:如果這個引數設定為y,密碼是不區分大小寫的.也就是說在使用密碼檔案中的密碼與使用者在登入時提供的密碼進行比較時會忽略大小寫.

共享和禁用密碼檔案
可以透過初始化引數remote_login_passwordfile來控制一個密碼檔案在多個oracle資料庫例項之間是否共享.也可以使用這個引數來禁用密碼檔案審計.remote_login_passwordfile引數允許的引數值如下:
none:這個引數設定為none時oracle資料庫認為密碼檔案不存在.也就是說在不安全連線的情況下不允許進行特權連線,或者說不能遠端登入資料庫

exclusive:(預設值)一個exclusive密碼檔案只能被一個資料庫例項使用.只有一個exclusive檔案能被修改.使用一個exclusive密碼檔案能讓你新增,修改和刪除使用者.也能使用alter user命令來修改sys使用者的密碼.

shared:一個shared的密碼檔案能被一個主機上的多個資料庫或一個rac中的多個例項來使用.一個shared密碼檔案不能被修改.因此你不能向一個shared的密碼檔案中新增使用者.任何試圖修改sys使用者的密碼或者其它使用者的sysdba或sysoper許可權的操作都會生成一個錯誤.所有需要sysdba或sysoper系統許可權的使用者必須在remote_login_passwordfile設定為exclusive時被新增到密碼檔案中.在所有的使用者被新增到密碼檔案之後再修改remote_login_passwordfile為shared再共享密碼檔案.

這個選項在管理多個資料庫或oracle rac資料庫時是非常有用的.

如果remote_login_passwordfile設定為exclusive或shared且密碼檔案丟失這就等價於remote_login_passwrodfile為none.
當remote_login_passwordfile為none時
SQL> show parameter remote_login_passwordfile

NAME TYPE VALUE
------------------------------------ ----------- --------------
remote_login_passwordfile string NONE
SQL> SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';

no rows selected

SQL> select * from V$PWFILE_USERS;

no rows selected
當remote_login_passwordfile為none時查詢v$pwfile_users檢視是查詢不到被授予sysdba許可權的使用者記錄
密碼檔案orapwjycs存在
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs
-rw-r----- 1 oracle oinstall 2560 Apr 4 10:08 spfilejycs.ora

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 4 10:15:06 2014

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

SQL> conn sys/zzh_2046@231_jycs as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied

遠端登入是不能連線到資料庫

當remote_login_passwordfile為exclusive時
SQL> show parameter remote_login_passwordfile

NAME TYPE VALUE
------------------------------------ ----------- --------------
remote_login_passwordfile string EXCLUSIVE
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 2560 Apr 4 09:56 spfilejycs.ora
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs
將密碼檔案orapwjycs刪除
[oracle@jyrac1 dbs]$ mv orapwjycs orapwjycs.bak
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 2560 Apr 4 09:56 spfilejycs.ora
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs.bak

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 4 09:59:46 2014

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

SQL> conn sys/zzh_2046@231_jycs as sysdba
ERROR:
ORA-01031: insufficient privileges

遠端登入時是連線不了資料庫的
現在恢復密碼檔案orapwjycs
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs
-rw-r----- 1 oracle oinstall 2560 Apr 4 10:08 spfilejycs.ora

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 4 09:58:49 2014

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

SQL> conn sys/zzh_2046@231_jycs as sysdba
已連線。

遠端登入是能連線資料庫

當remote_login_passwordfile為shared時
SQL> show parameter remote_login_passwordfile

NAME TYPE VALUE
------------------------------------ ----------- --------------
remote_login_passwordfile string SHARED
刪除密碼檔案orapwjycs
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs
-rw-r----- 1 oracle oinstall 2560 Apr 4 10:08 spfilejycs.ora
[oracle@jyrac1 dbs]$ mv orapwjycs orapwjycs.bak
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs.bak
-rw-r----- 1 oracle oinstall 2560 Apr 4 10:08 spfilejycs.ora

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 4 10:10:56 2014

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

SQL> conn sys/zzh_2046@231_jycs as sysdba
ERROR:
ORA-01031: insufficient privileges

遠端登入時是連線不了資料庫

現在恢復密碼檔案orapwjycs
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs.bak
-rw-r----- 1 oracle oinstall 2560 Apr 4 10:08 spfilejycs.ora
[oracle@jyrac1 dbs]$ mv orapwjycs.bak orapwjycs
[oracle@jyrac1 dbs]$ ls -lrt
total 24
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:27 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Mar 24 13:31 hc_jycs.dat
-rw-r----- 1 oracle oinstall 24 Mar 24 13:32 lkJYCS
-rw-r----- 1 oracle oinstall 1536 Apr 4 10:01 orapwjycs
-rw-r----- 1 oracle oinstall 2560 Apr 4 10:08 spfilejycs.ora

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 4 10:12:24 2014

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

SQL> conn sys/zzh_2046@231_jycs as sysdba
已連線。
遠端登入能連線到資料庫

注意:如果remote_login_passwordfile設定為shared是不能修改sys使用者的密碼的如果你試圖修改就會返回錯誤資訊.
SQL> show parameter remote_login_passwordfile

NAME TYPE VALUE
------------------------------------ ----------- -------------
remote_login_passwordfile string SHARED
SQL> alter user sys identified by "zzh_2046";
alter user sys identified by "zzh_2046"
*
ERROR at line 1:
ORA-28046: Password change for SYS disallowed

保持管理員密碼與資料字典同步
如果你將remote_logic_passwordfile初始化引數從none改成exclusive或shared或者使用不同的sys使用者的密碼來重新建立密碼檔案,那麼必須要確保sys使用者在資料字典中的密碼與密碼檔案中的密碼是相同的.

為了同步sys使用者密碼可以使用alter user語句來改變sys使用者密碼.alter user語句會更新和同步資料字典和密碼檔案中的密碼

為了同步以sysdba或sysoper許可權來登入資料庫的非sys使用者的密碼,必須先回收這些許可權然後再重新授權:
1.找到所有已經被授予sysdba許可權的所有使用者
SQL> select * from V$PWFILE_USERS;

USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
OE TRUE FALSE FALSE

SQL> SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';

USERNAME
------------------------------
OE

2.回收這些非sys使用者的sysdba許可權然後再重新授予sysdba許可權
SQL> revoke sysdba from oe;

Revoke succeeded.

SQL> SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';

no rows selected

SQL> grant sysdba to oe;

Grant succeeded.

SQL> SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';

USERNAME
------------------------------
OE

3.找出所有已經被授予sysoper許可權的所有使用者
SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSOPER='TRUE';

4.回收非sys使用者的sysoper許可權然後再重新授予sysoper許可權
REVOKE SYSOPER FROM non-SYS-user;
GRANT SYSOPER TO non-SYS-user;

向密碼檔案新增使用者
當你給使用者授予sysdba或sysoper許可權後,這個使用者的使用者名稱和許可權資訊將被新增到密碼檔案中.如果伺服器沒有一個exclusive密碼檔案(也就是說初始化引數remote_login_passwordfile被設定為none或shared,或者密碼檔案丟失),如果你試圖授予這些許可權時oracle資料庫會返回一個錯誤資訊.

只要使用者有這兩個許可權中一個這個使用者的使用者名稱就會保留在密碼檔案中.如果你回收這些許可權,那麼oracle資料庫會從密碼檔案中刪除這些使用者.

建立一個密碼檔案並向密碼檔案中新增使用者
1.使用orapwd工具建立密碼檔案
orapwd命令的語法如下:
ORAPWD FILE=filename [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]

2.設定初始化引數remote_login_passwordfile為exclusive(這是預設值)
注意:remote_login_passwordfile是一個靜態初始化引數因此在不重新啟動資料庫的情況下是不能修改這個引數的.

3.使用有sysdba許可權的使用者連線到資料庫
SQL>conn sys/zzh_2046 as sysdba

4.啟動資料庫
SQL> startup
ORACLE instance started.

Total System Global Area 630501376 bytes
Fixed Size 2215984 bytes
Variable Size 385880016 bytes
Database Buffers 234881024 bytes
Redo Buffers 7524352 bytes
Database mounted.
Database opened.

5.建立必要的使用者授予sysdba或sysoper許可權
SQL> create user test identified by test;

User created.

SQL> grant sysdba to test;

Grant succeeded.

SQL> grant sysoper to test;

Grant succeeded.

SQL> select * from V$PWFILE_USERS;

USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
OE TRUE FALSE FALSE
TEST TRUE TRUE FALSE

授予和回收sysdab和sysoper許可權
如果你的伺服器使用一個exclusive密碼檔案,使用grant語句給使用者授予sysdba或sysoper系統許可權,例如:
SQL>grant sysdba to oe;

使用revoke語句來回收使用者的sysdba或sysoper系統許可權,例如:
SQL>revoke sysdba from oe;

因為sysdba和sysoper是最強大的資料庫許可權,在grant語句中沒有使用with admin option選項.也就是被授予許可權的使用者不能給其它的使用者授予sysdba或sysoper許可權.只能有一個以sysdba許可權的使用者連線到資料庫能授予或回收其它使用者的sysdba或sysoper系統許可權.這些許可權不能被授予角色,因為角色只能在資料庫啟動後才可用.不要將sysdba和sysoper資料庫許可權與作業系統角色混淆.

檢視密碼檔案成員
使用v$pwfile_users檢視來檢視哪些被授予sysdba或sysoper或sysasm系統許可權的使用者.這個檢視會顯示以下資訊:
username:這個列包含了由密碼檔案識別的使用者的使用者名稱
sysdba:如果這個列為true那麼使用者可以使用sysdba系統許可權來登入資料庫
sysoper:如果這個列為true那麼使用者可以使用sysoper系統許可權來登入資料庫
sysasm:如果這個列為true那麼使用者可以使用sysasm系統許可權來登入資料庫
注意:sysasm只用於oracle asm例項

維護密碼檔案
維護密碼檔案包括以下操作:
1.如果密碼檔案填充滿後擴充套件密碼檔案使用者數
2.刪除密碼檔案

擴充套件密碼檔案使用者數
當你向使用者授予sysdba或sysoper系統許可權因為密碼檔案已經填充滿了而返回一個錯誤資訊那麼必須建立一個更大的密碼檔案並重新給使用者授予許可權.

替換密碼檔案
使用一面的過程來替換密碼檔案:
1.透過查詢v$pwfile_users檢視來識別哪些使用者有sysdba或sysoper許可權

2.刪除已經存在的密碼檔案

3.使用orapwd工具來建立一個新的密碼檔案.確保entries引數的值比你認為將來使用的值要大

4.向密碼檔案中新增使用者

刪除密碼檔案
如果你判斷你將不需要使用密碼檔案來審計使用者,可以刪除密碼檔案,然後重新設定remote_login_passwordfile初始化引數為none.在刪除密碼檔案之後,只有哪些由作業系統驗證的使用者能執行sysdba或sysoper資料庫管理操作.

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

相關文章