【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程式設計師面試筆試寶典》,作者:李華榮。