資料庫管理員許可權認證&&密碼檔案的建立和管理
資料庫管理員許可權認證&&密碼檔案的建立和管理
一、資料庫管理員許可權認證
oracle最常用的賬戶認證方式是資料字典認證方式,從11gR1開始,密碼是大小寫敏感的了。可以通過將sec_case_sensitive_logon引數設定為false來禁用該特性。
除資料字典方式認證外,還包括密碼檔案認證、作業系統許可權認證以及基於網路的認證伺服器,比如oracle internet directory。
這些方法代替了以前的內部認證方式“connect internal”。
作業系統認證發生在密碼檔案認證之前。如果符合作業系統認證要求了,就是使用密碼檔案,也還是會選擇作業系統認證的方式。
認證方式的選擇應該考慮到連線是否安全。
如果在遠端進行資料庫管理時,使用的是安全的連線協議,就可以使用作業系統認證方式。但對於比較流行的協議,如TCP/IP、DECnet,都是不安全的。
對於不安全的遠端連線方式,必須使用密碼檔案認證方式。這時,資料庫在密碼檔案中保留了已經授予sysdba或sysoper許可權的資料庫使用者的使用者名稱。
對於本地連線和安全的遠端連線,用有許可權的使用者直接登入:
如果有密碼檔案,並且你已經被賦予sysdba或sysoper許可權,可以通過密碼檔案連線和認證;
如果伺服器未使用密碼檔案或者由於沒有被授予sysdba、sysoper許可權而不再密碼檔案中,可以使用作業系統認證方式。
在大多數系統中,dba許可權認證包括將dba放到特定的組中,通常是OSDBA組。該組中的使用者被授予了sysdba許可權。類似地OSOPER組是給使用者授予了sysoper的組。
1.使用作業系統認證方式
OSDBA和OSOPER組中的成員可以使dba通過作業系統認證,而不需要使用者名稱和密碼的方式。(作業系統認證方式)
這兩個組是oracle安裝時建立的,預設成員取決於作業系統。在unix系統中分別是組dba、oper,在windows中是ora_dba、ora_oper。
2.使用密碼檔案認證方式
1)在未建立的情況下,可以使用orapwd命令建立密碼檔案:
orapwd file=
注意兩點:
使用dbca建立資料庫時,會自動建立密碼檔案
11gR1開始,密碼大小寫敏感,可以使用在以上命令中使用ignorecase=Y禁用
2)設定remote_login_passwordfile引數為execlusive(預設)
3)以sys或其他管理員許可權使用者連線資料庫
4)如果不存在該使用者,建立並指定密碼
5)授權:grant sysdba to xxxx;
二、密碼檔案的建立和管理
1.用orapwd建立密碼檔案
ORAPWD FILE=filename [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]
其中file是檔案的完整路徑和名稱
entries表示該檔案中允許的最大使用者數量
force=y表示強制重寫已存在的密碼檔案
ignorecase確認是否大小寫敏感
需要注意,在等號兩側不允許有空格。
密碼檔名稱:
unix/linux: ORACLE_HOME/dbs/orapwORACLE_SID
Windows : ORACLE_HOME\database\PWDORACLE_SID.ora
2.密碼檔案的共享號禁用
remote_login_passwordfile引數控制密碼檔案是否可以在多個例項間共享。該引數也可以用於禁用密碼檔案認證。
remote_login_passwordfile的可選值為:
NONE oracle認為密碼檔案不存在,也就是說不安全的連線不能連線到資料庫。
EXCLUSIVE 預設選項,只能用於一個例項。只有EXCLUSIVE檔案可以被修改。使用該選項,可以增、刪、該使用者,可以用alter user命令修改sys密碼。
SHARED 可以被相同伺服器的多個資料庫共用,或RAC的多個例項共用。不能被修改、增加使用者。
必須將所有需要sysdba或sysoper作業系統許可權的使用者都加到密碼檔案中,然後將remote_login_passwordfile由exclusive改為shared,並共享該檔案。
在管理多個資料庫或者RAC時使用該選項。
如果remote_login_passwordfile引數設定為exclusive或shared,但密碼檔案丟失,則等價於設定為了NONE。
如果將該引數由none改為shared或exclusive,或者用不同的sys密碼重建了該檔案,就必須確保資料字典中的密碼和sys使用者的密碼相同。
要同步sys密碼,可以使用alter user語句修改sys密碼。alter user語句會將資料字典和密碼檔案的密碼都更新。
要同步擁有sysdba或sysoper的非sys使用者的密碼,需要收回並重新授予許可權,如:
SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE'; (檢視)
REVOKE SYSDBA FROM non-SYS-user;(收回)
GRANT SYSDBA TO non-SYS-user;(授予)
3.增加使用者到密碼檔案
當給某個使用者授予sysdba或sysoper許可權時,使用者名稱和許可權資訊被增加到密碼檔案中。
如果伺服器沒有exclusive的密碼檔案,授權時就會報錯。
由於sysdba和sysoper是非常高的許可權,其grant語句中不建議使用with admin option選項。
只有當前以sysdba登入的使用者才能給其他使用者授予或收回sysdba、sysoper許可權。
該許可權不能授予角色,因為角色是在資料庫啟動後才生效的。
在v$pwfile_users檢視中可以看到sysdba、sysoper或sysasm許可權的使用者資訊。
4.密碼檔案的維護
1)替換密碼檔案
查詢v$pwfile_users找到sysdba、sysoper許可權的使用者
刪除當前的密碼檔案
建立新的密碼檔案,確保entries引數足夠大
2)刪除密碼檔案
直接將密碼檔案物理刪除即可。刪除後,只有能被作業系統識別的sysdba、sysoper許可權使用者能進行相應操作。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
實練:
由於oracle在進行賬戶認證時是先採用作業系統認證方式的,無論使用者名稱和密碼是什麼,都可以sysdba許可權登入。
因此,需要先將作業系統認證方式禁用,再去測試密碼方式才有意義。
禁用的方法比較簡單,將sqlnet.ora中的
SQLNET.AUTHENTICATION_SERVICES= (NTS)
改為
SQLNET.AUTHENTICATION_SERVICES= (NONE)
修改前登入:
D:\Documents and Settings\tian>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 7月 15 16:53:13 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已連線。
修改後登入:
SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的環境中密碼檔案在:
D:\oracle10g\database\PWDtest.ora
將此檔案改名。
然後登入並檢視資料庫:
SQL> conn sys/sys@test as sysdba
Connected to Oracle Database 10g Release 10.2.0.1.0
Connected as SYS
SQL> select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER
------------------------------ ------ -------
可以看到,10g中只有sysdb和sysoper兩個屬性列。11g應該還有sysasm。
因為sys是系統能識別的sysdba許可權使用者,即使密碼檔案刪了,依賴可以用它登入。
但如果是以前設定的遠端作業系統使用者,可能就不行了。
下面重建:
SQL> exit
從 Oracle Database 10g Release 10.2.0.1.0 - Production 斷開
D:\Documents and Settings\tian>orapwd file=D:\oracle10g\database\PWDtest.ora pas
sword=tianlei ENTRIES=5 IGNORECASE=Y
Usage: orapwd file=
where
file - name of password file (mand),
password - password for SYS (mand),
entries - maximum number of distinct DBA and force - whether to overwrit
e existing file (opt),
OPERs (opt),
There are no spaces around the equal-to (=) character.
--以上是由於10g環境沒有ignorecase選項造成的
D:\Documents and Settings\tian>orapwd file=D:\oracle10g\database\PWDtest.ora pas
sword=tianlei ENTRIES=5
--登入後再次查詢:
D:\Documents and Settings\tian>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 7月 15 16:12:34 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
已連線。
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SQL> grant sysdba to scott;
Grant succeeded
SQL> grant sysoper to terry ;
Grant succeeded
SQL> select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER
------------------------------ ------ -------
SYS TRUE TRUE
SCOTT TRUE FALSE
TERRY FALSE TRUE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-766312/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫的許可權管理資料庫
- 1.5. 關於資料庫管理員的安全和許可權資料庫
- 關於ORACLE作業系統認證和ORAPWD密碼檔案認證SYSDBA許可權Oracle作業系統密碼
- 你需要提供管理員許可權才能刪除此資料夾win10 如何跳過管理員許可權刪除檔案Win10
- Mac 檔案許可權管理(桌面管理)Mac
- win10怎麼刪除管理員許可權檔案 win10需要管理員許可權刪除檔案的方法Win10
- 七、許可權管理和資料庫備份資料庫
- Win7如何取得檔案管理員許可權Win7
- Windows7如何取得檔案管理員許可權?Windows
- 資料庫學習:許可權管理資料庫
- 1.6. 資料庫管理員認證資料庫
- ylbtech-許可權管理-資料庫設計-功能許可權管理技術資料庫
- 資料夾刪不掉需要管理員許可權怎麼辦 刪除需要管理員許可權的辦法
- MySQL資料庫許可權體系入門(5)---管理資料庫許可權MySql資料庫
- Linux的檔案許可權管理Linux
- linux 檔案許可權管理Linux
- 管理員許可權刪除資料夾win10怎麼辦_win10刪除檔案需要管理員許可權處理方法Win10
- .NET 程式許可權控制、獲得管理員許可權程式碼
- win10資料夾管理員許可權如何更改_win10設定資料夾管理員許可權步驟Win10
- 程式碼批量新增ACL管理員許可權
- 掠奪許可權:Serv-U得到管理員密碼新招(轉)密碼
- Linux 檔案許可權管理的方法Linux
- Confluence6對比系統管理員許可權和Confluence管理員許可權
- Mac檔案許可權管理(shell命令)Mac
- Linux檔案許可權管理命令Linux
- PostgreSQL資料庫使用者許可權管理SQL資料庫
- 程式請求管理員許可權
- windows7管理員許可權Windows
- MySQL資料庫許可權體系入門(4)---管理全域性許可權MySql資料庫
- 擁有sysdba許可權使用者,在資料庫中和密碼檔案中的密碼關係資料庫密碼
- 使用者及檔案許可權管理
- win10管理員許可權怎麼取消_win10如何關掉管理員許可權Win10
- w10如何獲得管理員許可權_win10怎麼取得管理員許可權Win10
- 如何獲取最高管理員許可權 win10教育版最高管理員許可權Win10
- 取消 root 級管理員的 root 許可權
- win10管理員許可權怎麼獲取 win10管理員許可權獲取的方法Win10
- SAP BO: 資料夾的許可權管理
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫