在Oracle中,Oracle用戶密碼含特殊字符時(shí)如何登陸?
當(dāng)Oracle用戶密碼含有特殊字符(例如,&、@、$等)的時(shí)候,SQL*Plus和exp或expdp等工具進(jìn)行登錄的時(shí)候在寫法上有很大的差異。 若密碼不含“&”符號(hào),則可以使用雙引號(hào)將密碼括起來(lái)進(jìn)行密碼修改: 1alter user lhr identified by 'l@h\r/0';
若密碼包含有“&”符號(hào),則需要首先設(shè)置define為off才可以修改密碼: 1set define off 2alter user scott identified by '$tiger&123l@h\r/0%s,d$'; 3alter user scott identified by '$?`$%*H\@f'\<a-q/$-@#<>`}:H$';
若密碼包含有“'”雙引號(hào),則需要使用password來(lái)修改密碼: 在Linux平臺(tái)下,使用不同客戶端連接Oracle數(shù)據(jù)庫(kù)的寫法如下表所示: Linux平臺(tái) | SQL*Plus工具 | exp、imp、expdp、impdp | 普通用戶 | 無(wú)tns | sqlplus 'lhr/'l@h\r/0'' | expdp 'lhr/'l@h\r/0'' | 有tns | sqlplus 'lhr/'l@h\r/0''@LHRDB | expdp 'lhr/'l@h\r/0''@LHRDB | sys用戶 | 無(wú)tns | sqlplus / as sysdba | expdp \'/ AS SYSDBA\' | 有tns | sqlplus 'sys/'l@h\r/0''@LHRDB as sysdba | expdp \''sys/'l@h\r/0''@LHRDB as sysdba\' | 正常密碼 | sqlplus sys/lhr@lhrdb as sysdba | expdp \'sys/lhr@LHRDB as sysdba\' |
在上表中,含特殊字符密碼為:l@h\r/0,正常密碼為:lhr,tns為:LHRDB,總的寫法原則為:密碼用雙引號(hào)括起來(lái),用戶名和密碼用單引號(hào)括起來(lái),然后【用戶名】+【密碼】+【tns】+【as sysdba】用單引號(hào)括起來(lái),最后的這個(gè)單引號(hào)用“\”進(jìn)行轉(zhuǎn)義。 在Windows平臺(tái)下,使用不同客戶端連接Oracle數(shù)據(jù)庫(kù)的寫法如下表所示: Windows平臺(tái) | SQL*Plus工具 | exp、imp、expdp、impdp | 普通用戶 | 無(wú)tns | sqlplus lhr/'''l@h\r/0''' sqlplus lhr/\'l@h\r/0\' | expdp lhr/'''l@h\r/0''' expdp lhr/\'l@h\r/0\' | 有tns | sqlplus lhr/'''l@h\r/0'''@LHRDB sqlplus lhr/\'l@h\r/0\'@LHRDB | expdp lhr/'''l@h\r/0'''@LHRDB expdp lhr/\'l@h\r/0\'@LHRDB | sys用戶 | 無(wú)tns | sqlplus / as sysdba | expdp \'/ as sysdba\' | 有tns | sqlplus sys/'''l@h\r/0'''@LHRDB as sysdba sqlplus sys/\'l@h\r/0\'@LHRDB as sysdba |
| 正常密碼 | sqlplus sys/lhr@lhrdb as sysdba | expdp \'sys/lhr@LHRDB as sysdba\' |
在上表中,含特殊字符密碼為:l@h\r/0,正常密碼為:lhr,tns為:LHRDB,總的原則為:密碼用3個(gè)雙引號(hào)括起來(lái),或者用一個(gè)雙引號(hào)括起來(lái),然后用“\”將雙引號(hào)進(jìn)行轉(zhuǎn)義。 & 說(shuō)明: 有關(guān)本小節(jié)的更多內(nèi)容可以參考我的BLOG:http://blog./26736162/viewspace-2135493/
本文選自《Oracle程序員面試筆試寶典》,作者:李華榮。
|