【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程序员面试笔试宝典》,作者:李华荣。