【DB筆試面試492】Oracle用戶密碼含特殊字元時如何登陸?
- 2019 年 10 月 11 日
- 筆記
在Oracle中,Oracle用戶密碼含特殊字元時如何登陸?
答案部分
當Oracle用戶密碼含有特殊字元(例如,&、@、$等)的時候,SQL*Plus和exp或expdp等工具進行登錄的時候在寫法上有很大的差異。
若密碼不含「&」符號,則可以使用雙引號將密碼括起來進行密碼修改:
alter user lhr identified by "l@hr/0";
若密碼包含有「&」符號,則需要首先設置define為off才可以修改密碼:
set define off alter user scott identified by "$tiger&123l@hr/0%s,d$"; alter user scott identified by "$?`$%*H@f'<a-q/$-@#<>`}:H$";
若密碼包含有「"」雙引號,則需要使用password來修改密碼:
password scott
在Linux平台下,使用不同客戶端連接Oracle資料庫的寫法如下表所示:
Linux平台 |
SQL*Plus工具 |
exp、imp、expdp、impdp |
|
---|---|---|---|
普通用戶 |
無tns |
sqlplus 'lhr/"l@hr/0"' |
expdp 'lhr/"l@hr/0"' |
有tns |
sqlplus 'lhr/"l@hr/0"'@LHRDB |
expdp 'lhr/"l@hr/0"'@LHRDB |
|
sys用戶 |
無tns |
sqlplus / as sysdba |
expdp '/ AS SYSDBA' |
有tns |
sqlplus 'sys/"l@hr/0"'@LHRDB as sysdba |
expdp ''sys/"l@hr/0"'@LHRDB as sysdba' |
|
正常密碼 |
sqlplus sys/lhr@lhrdb as sysdba |
expdp 'sys/lhr@LHRDB as sysdba' |
在上表中,含特殊字元密碼為:l@hr/0,正常密碼為:lhr,tns為:LHRDB,總的寫法原則為:密碼用雙引號括起來,用戶名和密碼用單引號括起來,然後【用戶名】+【密碼】+【tns】+【as sysdba】用單引號括起來,最後的這個單引號用「」進行轉義。
在Windows平台下,使用不同客戶端連接Oracle資料庫的寫法如下表所示:
Windows平台 |
SQL*Plus工具 |
exp、imp、expdp、impdp |
|
---|---|---|---|
普通用戶 |
無tns |
sqlplus lhr/"""l@hr/0"""sqlplus lhr/"l@hr/0" |
expdp lhr/"""l@hr/0"""expdp lhr/"l@hr/0" |
有tns |
sqlplus lhr/"""l@hr/0"""@LHRDBsqlplus lhr/"l@hr/0"@LHRDB |
expdp lhr/"""l@hr/0"""@LHRDBexpdp lhr/"l@hr/0"@LHRDB |
|
sys用戶 |
無tns |
sqlplus / as sysdba |
expdp "/ as sysdba" |
有tns |
sqlplus sys/"""l@hr/0"""@LHRDB as sysdbasqlplus sys/"l@hr/0"@LHRDB as sysdba |
|
|
正常密碼 |
sqlplus sys/lhr@lhrdb as sysdba |
expdp "sys/lhr@LHRDB as sysdba" |
在上表中,含特殊字元密碼為:l@hr/0,正常密碼為:lhr,tns為:LHRDB,總的原則為:密碼用3個雙引號括起來,或者用一個雙引號括起來,然後用「」將雙引號進行轉義。
& 說明:
有關本小節的更多內容可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-2135493/
本文選自《Oracle程式設計師面試筆試寶典》,作者:李華榮。