当前位置: 首页 > 图文教程 > 数据库 > Oracle > 如何避免Oracle数据库密码出现@符号

Oracle
oracle sys_connect_by_path 函数 结果集连接
oracle join on 数据过滤问题
Oracle 当前用户下所有表的记录总数
oracle 树查询 语句
oracle 触发器 实现出入库
Oracle 函数大全
oracle 删除重复数据
ORACLE 最大连接数的问题
oracle 层次化查询(行政区划三级级联)
oracle 查询表名以及表的列名
Oracle 数据显示 横表转纵表
oracle 服务启动,关闭脚本(windows系统下)
ORCLE 表中列的修改
oracle 数据库连接分析
Oracle 实现类似SQL Server中自增字段的一个办法
Oracle 常用的SQL语句
Oracle 数组的学习 小知识也要积累,养成好的学习态度
Oracle 日期的一些简单使用
Oracle 数据库连接查询SQL语句
Oracle DBA常用语句

如何避免Oracle数据库密码出现@符号


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 149 ::
收藏到网摘: n/a

 密码复杂性是IT审计人员检查一个系统是否安全的一个重要方面。IT策略中经常指出密码应该有最小的长度且应该包含大写字母、小字字母、数字和特殊字符的混合。

 Oracle中应该避免将特殊字符@用于密码中,因为在Oracle中,@符号用来表明使用哪一台Oracle服务器。SQL *Plus连接语句的完整格式如下:

CONNECT username/password@alias

 其中alias是一个Oracle Net别名,代表一个服务器、断口和实例名。

 列表A显示了在密码中使用了@字符时,产生的错误:ORA-12154,“TNS:不能解析指定的连接标识符。”@符号被错误的用作Oracle Net别名,因为@之后的部分不是一个有效的别名从而产生错误。

列表 A

SQL> CREATE USER testuser1 IDENTIFIED BY "Cat"
  2  DEFAULT TABLESPACE users
  3  TEMPORARY TABLESPACE temp;

User created.

SQL> CREATE USER testuser2 IDENTIFIED BY "H@t"
  2  DEFAULT TABLESPACE users
  3  TEMPORARY TABLESPACE temp;

User created.

SQL> GRANT create session TO testuser1, testuser2;

Grant succeeded.

SQL> connect testuser1/cat
Connected.
SQL> connect testuser2/h@t
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

Warning: You are no longer connected to ORACLE.
SQL> connect testuser2/"h@t"
Connected.
SQL> 

 The workaround is to enclose the password in quotes, as shown in the listing.

 这个问题在Oracle 10g第二版中也存在。同时,值得注意的是testuser1使用密码“cat,”也可以成功登录,即使他的密码是“cat.”在下一个主要发行11g中,Oracle计划用一个更安全的密码算法取代原来的算法,新的算法允许密码中使用真正的大写字母和小写字母。同时@问题也不会再出现。

 同时,可以在PL/SQL中通过创建一个密码复杂性函数阻止用户设置包含@符号的密码,如果新密码包含@符号,就会被拒绝。

 Bob Watkins(Oracle认证专业人员、微软认证IT专业人员、微软认证数据库管理员、微软认证讲师)作为技术培训讲师、资深顾问和数据库管理员,拥有25年的计算机专业人员从业经验。现为Dallas/Fort Worth地区数据库咨询与培训公司B.Watkins的高级顾问和管理伙伴。