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