如何避免Oracle數(shù)據(jù)庫(kù)密碼出現(xiàn)@符號(hào)
Bob Watkins(Oracle認(rèn)證專業(yè)人員、微軟認(rèn)證IT專業(yè)人員、微軟認(rèn)證數(shù)據(jù)庫(kù)管理員、微軟認(rèn)證講師)作為技術(shù)培訓(xùn)講師、資深顧問(wèn)和數(shù)據(jù)庫(kù)管理員,擁有25年的計(jì)算機(jī)專業(yè)人員從業(yè)經(jīng)驗(yàn)。現(xiàn)為Dallas/Fort Worth地區(qū)數(shù)據(jù)庫(kù)咨詢與培訓(xùn)公司B.Watkins的高級(jí)顧問(wèn)和管理伙伴。
密碼復(fù)雜性是IT審計(jì)人員檢查一個(gè)系統(tǒng)是否安全的一個(gè)重要方面。IT策略中經(jīng)常指出密碼應(yīng)該有最小的長(zhǎng)度且應(yīng)該包含大寫字母、小字字母、數(shù)字和特殊字符的混合。
Oracle中應(yīng)該避免將特殊字符@用于密碼中,因?yàn)樵贠racle中,@符號(hào)用來(lái)表明使用哪一臺(tái)Oracle服務(wù)器。SQL*Plus連接語(yǔ)句的完整格式如下:
CONNECT username/password@alias
其中alias是一個(gè)Oracle Net別名,代表一個(gè)服務(wù)器、斷口和實(shí)例名。
列表A顯示了在密碼中使用了@字符時(shí),產(chǎn)生的錯(cuò)誤:ORA-12154,“TNS:不能解析指定的連接標(biāo)識(shí)符。”@符號(hào)被錯(cuò)誤的用作Oracle Net別名,因?yàn)锧之后的部分不是一個(gè)有效的別名從而產(chǎn)生錯(cuò)誤。
列表 A
SQL> CREATE USER testuser1 IDENTIFIED BY 'Cat'2; DEFAULT TABLESPACE users3; TEMPORARY TABLESPACE temp;
User created.
SQL> CREATE USER testuser2 IDENTIFIED BY 'H@t'2; DEFAULT TABLESPACE users3; TEMPORARY TABLESPACE temp;
User created.
SQL> GRANT create session TO testuser1, testuser2;
Grant succeeded.
SQL> connect testuser1/catConnected.SQL> connect testuser2/h@tERROR:ORA-12154: TNS:could not resolve the connect identifier specified
Warning: You are no longer connected to ORACLE.SQL> connect testuser2/'h@t'Connected.SQL>
The workaround is to enclose the password in quotes, as shown in the listing.
這個(gè)問(wèn)題在Oracle 10g第二版中也存在。同時(shí),值得注意的是testuser1使用密碼“cat,”也可以成功登錄,即使他的密碼是“cat.”在下一個(gè)主要發(fā)行11g中,Oracle計(jì)劃用一個(gè)更安全的密碼算法取代原來(lái)的算法,新的算法允許密碼中使用真正的大寫字母和小寫字母。同時(shí)@問(wèn)題也不會(huì)再出現(xiàn)。
同時(shí),可以在PL/SQL中通過(guò)創(chuàng)建一個(gè)密碼復(fù)雜性函數(shù)阻止用戶設(shè)置包含@符號(hào)的密碼,如果新密碼包含@符號(hào),就會(huì)被拒絕。
相關(guān)文章:
1. Mysql入門系列:需要避免的MYSQL客戶機(jī)程序設(shè)計(jì)錯(cuò)誤2. 導(dǎo)出錯(cuò)誤編碼的mysql數(shù)據(jù)庫(kù)3. DB2 數(shù)據(jù)庫(kù)應(yīng)用中使用受信任上下文(1)4. 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫(kù)5. 簡(jiǎn)單了解MYSQL數(shù)據(jù)庫(kù)優(yōu)化階段6. MYSQL(電話號(hào)碼,身份證)數(shù)據(jù)脫敏的實(shí)現(xiàn)7. navicat for mysql導(dǎo)出數(shù)據(jù)庫(kù)的方法8. explain命令為什么可能會(huì)修改MySQL數(shù)據(jù)9. 講解SQL Server數(shù)據(jù)庫(kù)備份的多種方式10. 講解SQL Server2005數(shù)據(jù)項(xiàng)的分拆與合并
