在Oracle中,Oracle用户密码含特殊字符时如何登陆?
当Oracle用户密码含有特殊字符(例如,&、@、$等)的时候,SQL*Plus和exp或expdp等工具进行登录的时候在写法上有很大的差异。 若密码不含“&”符号,则可以使用双引号将密码括起来进行密码修改: 1alter user lhr identified by 'l@h\r/0';
若密码包含有“&”符号,则需要首先设置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$';
若密码包含有“'”双引号,则需要使用password来修改密码: 在Linux平台下,使用不同客户端连接Oracle数据库的写法如下表所示: Linux平台 | SQL*Plus工具 | exp、imp、expdp、impdp | 普通用户 | 无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用户 | 无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,总的写法原则为:密码用双引号括起来,用户名和密码用单引号括起来,然后【用户名】+【密码】+【tns】+【as sysdba】用单引号括起来,最后的这个单引号用“\”进行转义。 在Windows平台下,使用不同客户端连接Oracle数据库的写法如下表所示: Windows平台 | SQL*Plus工具 | exp、imp、expdp、impdp | 普通用户 | 无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用户 | 无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个双引号括起来,或者用一个双引号括起来,然后用“\”将双引号进行转义。 & 说明: 有关本小节的更多内容可以参考我的BLOG:http://blog./26736162/viewspace-2135493/
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
|