Oracle 10g 11g密碼策略 使用者口令 大小寫敏感 說明
一、Oracle 10g
在Oracle 10g下,預設情況下,密碼是不區分大小寫的。這個是由於密碼檔案的預設引數有關。
C:\Users\Administrator >orapwd
Usage: orapwd
file=
where
file - name of password file (required),
password - password for SYS will be prompted if not specified at commandline,
entries - maximum number of distinct DBA (optional),
force - whether to overwrite existing file (optional),
ignorecase - passwords are case-insensitive (optional),
nosysdba - whether to shut out the SYSDBA logon (optional Database Vaultonly).
There must be no spaces around the equal-to (=) character.
這個是口令檔案建立命令的引數說明, 這裡我們看一個引數:ignorecase - passwords are case-insensitive (optional)
注意:
這個引數用來指定大小寫是否敏感,而預設情況是insentive, 即不敏感,所以對於Oracle10g的資料庫,預設情況下,密碼是不區分大小寫的。但是在Oracle 10g中,我們無法使用這個引數,在後續的測試用有說明。
雖然口令檔案裡只儲存具有SYSDBA和OPER許可權的使用者,但是其他使用者也會受影響。
2、示例
這裡我們在Oracle 10g上做一個測試,為了避免OS認證的影響,我們這裡可以禁用OS認證。
SQL> select * from v$version;
BANNER
-------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
--建立2個測試使用者
SQL> create user usr1 identified by USr1;
使用者已建立。
SQL> create user usr2 identified by USr2;
使用者已建立。
SQL> grant connect,resource to usr1;
授權成功。
SQL> grant connect,resource to usr2;
授權成功。
SQL> grant sysdba,sysoper to usr1;
授權成功。
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
LXH TRUE FALSE
USR1 TRUE TRUE
SQL> conn usr1/usr1;
已連線。
SQL> conn usr2/usr2;
已連線。
SQL> conn usr1/uSR1;
已連線。
SQL> conn usr1/lxh;
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
警告: 您不再連線到 ORACLE。
從這裡可以看出,在Oracle 10g下,密碼是不分大小寫的。
--繼續測試
我們將sysdba許可權從usr1使用者revoke,然後測試:
SQL> conn sys/system as sysdba
已連線。
SQL> revoke sysdba,sysoper from usr1;
撤銷成功。
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
LXH TRUE FALSE
我們繼續使用usr1進行測試:
SQL> conn usr1/usr1;
已連線。
SQL> conn usr1/lxh;
ERROR:
ORA-01017: 使用者名稱/口令無效; 登入被拒絕
警告: 您不再連線到 ORACLE。
從這裡可以看出,只是簡單的revoke並不能解決問題,我們重建一個口令檔案,然後測試一下看看:
E:\oracle\product\10.2.0\db_1\database>orapwd file=orapwtest password=oracle force=y;
SQL> conn usr1/usr1;
已連線。
--還是可以繼續使用,不分大小寫。
把DB重啟一下看看:
SQL> shutdown immediate
ORA-01031: 許可權不足
SQL> conn sys/system as sysdba
已連線。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 377487360 bytes
Fixed Size 1290688 bytes
Variable Size 352325184 bytes
Database Buffers 16777216 bytes
Redo Buffers 7094272 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> conn usr1/usr1;
已連線。
所以我們重建口令檔案不能解決問題。所以在Oracle 10g中,密碼是不區分大小寫的,這種現狀,在Oracle 11g中才得到真正的改善。
在Oracle 10g中:
E:\oracle\product\10.2.0\db_1\database>orapwd file=orapwtest password=oracle force=y ignorecase=y
Usage:
orapwd file=
where
file - name of password file (mand),
password - password for SYS (mand),
entries - maximum number of distinct DBA,
force - whether to overwrite existing file (opt),
nosysdba - whether to shut out the SYSDBA logon (opt for Database Vault only).
There are no spaces around the equal-to (=) character.
這裡設定了ignorecase引數之後,orapwd命令無法正常執行。因為ignorecase是在oracle 11g中真正新增的功能,在Oracle 11g中才可以使用。該引數用於設定sysdba或sysoper許可權通過密碼檔案登入時是否區分大小寫。
1、說明
(1)、sec_case_sensitive_logon引數
在Oracle 11g中,Oracle開始區分密碼大小寫,這個由引數:SEC_CASE_SENSITIVE_LOGON決定:
Property |
Description |
Parameter type |
Boolean |
Default value |
true |
Modifiable |
ALTER SYSTEM |
Range of values |
true | false |
Basic |
No |
SEC_CASE_SENSITIVE_LOGON enables or disables password case sensitivity in the database.
Values:
true: Database logon passwords are case sensitive.
false:Database logon passwords are not case sensitive.
使用者如果是從Oracle 10g匯入的,那麼PASSWORD_VERSIONS的值就是“10g”,維護區分大小寫的密碼不依賴於SEC_CASE_SENSITIVE_LOGON引數設定。假設SEC_CASE_SENSITIVE_LOGON引數被設定為TRUE,密碼立即變為大小寫敏感。
(2)、口令檔案
C:\Users\Administrator >orapwd
Usage: orapwd
file=
where
file - name of password file (required),
password - password for SYS will be prompted if not specified at commandline,
entries - maximum number of distinct DBA (optional),
force - whether to overwrite existing file (optional),
ignorecase - passwords are case-insensitive (optional),
nosysdba - whether to shut out the SYSDBA logon (optional Database Vaultonly).
There must be no spaces around the equal-to (=) character.
orapwd工具的ignorecase引數允許你控制在密碼檔案中的密碼是否大小寫敏感,它的預設值是“n”,即預設大小寫敏感。如果特權使用者(SYSDBA和SYSOPER)是從之前的資料庫版本中匯入的,它們的密碼也會包括在密碼檔案中,這些使用者將會保留大小寫敏感的密碼,直到密碼被修改。
如果指定ignorecase=y,則Oracle會忽略密碼驗證時密碼的大小寫。
示例一:
SQL> show parameter sec_case_sensitive_logon
NAME TYPE
VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean
TRUE
--建立測試使用者:
SQL> create user dave identified byDavE;
User created.
SQL> grant connect,resource to dave;
Grant succeeded.
SQL> conn dave/dave;
ERROR:
ORA-01017: invalid username/password; logondenied
Warning: You are no longer connected toORACLE.
SQL> conn dave/DavE;
Connected.
--這裡區分大小寫
--修改引數:
SQL> conn / as sysdba;
Connected.
SQL> alter system set sec_case_sensitive_logon=false;
System altered.
SQL> show parametersec_case_sensitive_logon
NAME TYPE VALUE
----------------------------------------------- -------
sec_case_sensitive_logon boolean FALSE
SQL> conn dave/dave;
Connected.
--禁用sec_case_sensitive_logon 就不區分大小寫了。
示例二:
在上面我們是通過sec_case_sensitive_logon 來設定的,這裡我們通過口令檔案引數來進行設定。
在Oracle 11g中,口令檔案的ignorecase 引數用於設定sysdba或sysoper許可權通過密碼檔案登陸時是否區分大小寫。預設情況下,ignorecase 引數是區分大小寫的。
注意這裡的ingorecase 引數僅僅是在密碼檔案中建立大小寫敏感的密碼。
先禁用OS認證
SQL>show parametersec_case_sensitive_logon
NAME TYPE VALUE
----------------------------------------------- ------
sec_case_sensitive_logon boolean TRUE
C:\Users\Administrator.DavidDai>orapwdfile=D:\app\Administrator\product\11.2.0\dbhome_1\database\pwdDAVE.orapassword=OraclE force=y ignorecase=y
--測試ignorecase引數對賦予sysdba 許可權使用者的影響:
C:\Users\Administrator.DavidDai>
SQL> conn / as sysdba
Connected.
SQL> create user dave1 identified byDavE;
User created.
SQL> grant connect,resource to dave1;
Grant succeeded.
SQL> conn dave1/dave;
ERROR:
ORA-01017: invalid username/password; logondenied
Warning: You are no longer connected toORACLE.
SQL> conn dave1/DavE;
Connected.
--這裡也必須使用正確的密碼,包括大小寫。
SQL> conn / as sysdba;
Connected.
SQL> grant sysdba,sysoper to dave1;
Grant succeeded.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----------
SYS TRUE TRUE FALSE
DAVE1 TRUE TRUE FALSE
SQL> conn dave1/DavE;
Connected.
SQL> conn dave1/dave;
ERROR:
ORA-01017: invalid username/password; logondenied
Warning: You are no longer connected to ORACLE.
--通過這個測試我們可以看出,在建立口令檔案時對後來賦予sysdba許可權的使用者來說,沒有影響,不能指定其是否忽略大小寫。
--測試SYS 使用者:
我們建立口令檔案時就是針對這個這個使用者的。
SQL> conn sys/oracle as sysdba;
Connected.
SQL> conn sys/OraclE as sysdba;
Connected.
SQL> conn sys/dave as sysdba;
ERROR:
ORA-01017: invalid username/password; logondenied
Warning: You are no longer connected toORACLE.
--這裡SYS 使用者成功忽略了大小寫問題。
總結:
通過以上2個測試,可以得出結論:
(1)sec_case_sensitive_logon引數可以指定使用者的口令是否區分大小寫。
(2)口令檔案中的ignorecase 引數僅僅針對建立時是否區分大小寫,簡言之,只能爭對SYS使用者。
三、Oracle 10g,11g與DBlink
通過前面的說明,可以看到Oracle 10g與11g中對密碼出的驗證策略不同,所以如果在不同版本庫之間建DBLINK,那麼密碼也就會成為一個問題,可能出現密碼不對的問題,具體的注意事項如下:
(1)11g連線到11g:
建立資料庫連線時,密碼必須與遠端資料庫使用者的密碼大小寫一致。
(2)11g連線到11g以前的資料庫:
建立資料流連線時用的密碼大小寫隨意,因為遠端資料庫會忽略大小寫的。
(3)11g以前的資料庫連線到11g:
將遠端使用者的密碼修改為大寫,或者用引號括起來,只有這樣才能通過11g以前的資料庫驗證。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-777049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10g、11g口令檔案密碼大小寫敏感密碼
- MySQL大小寫敏感說明MySql
- oracle 11g新特性之密碼大小寫敏感Oracle密碼
- Oracle 12c 業務使用者密碼大小寫不敏感Oracle密碼
- 11G 新特性:密碼大小寫策略密碼
- Oracle 11g使用者名稱密碼區分大小寫Oracle密碼
- 11G使用者密碼大小寫處理密碼
- oracle使用者口令管理策略Oracle
- 【11g】使用SEC_CASE_SENSITIVE_LOGON引數控制密碼大小寫敏感性Go密碼
- mysql大小寫敏感MySql
- 11G開始 密碼區分大小寫密碼
- 設定Oracle的使用者密碼不區分大小寫Oracle密碼
- Oracle Listener設定密碼示例說明Oracle密碼
- 4、 oracle 10g中的密碼策略---密碼重用規則Oracle 10g密碼
- 修改Oracle11g使用者密碼不區分大小寫Oracle密碼
- sql server 大小寫敏感SQLServer
- TSM for Oracle備份指令碼及策略說明Oracle指令碼
- Oracle密碼檔案的作用和說明Oracle密碼
- Oracle 11g使用者口令過期Oracle
- mysql 大小寫敏感問題MySql
- MySQL中的大小寫敏感MySql
- 密碼區分大小寫密碼
- oracle11gR1開始使用者的密碼區分大小寫。Oracle密碼
- Oracle 11gR2密碼區分大小寫Oracle密碼
- Oracle11g 特性——密碼區分大小寫Oracle密碼
- oracle 11g使用者密碼儲存Oracle密碼
- DM8 字串大小寫敏感字串
- PHP大小寫是否敏感問題PHP
- Oracle 10g 中 X$KCVFH 說明Oracle 10g
- 在Oracle中進行大小寫不敏感的查詢Oracle
- Oracle11g新特性——密碼區分大小寫Oracle密碼
- 【PROFILE】Oracle11g密碼複雜度說明Oracle密碼複雜度
- EBS 克隆,密碼大小寫敏感導致白屏或報錯 HTTP error 500 Internal server error密碼HTTPErrorServer
- oracle 11g 角色口令Oracle
- Oracle 11g 新特性 -- SecureFiles 說明Oracle
- oracle 資料檔案(Datafile ) 大小 限制 說明Oracle
- ORACLE 10g資料泵使用說明Oracle 10g
- 在Oracle中進行大小寫不敏感的查詢[zt]Oracle