问:目前,我们正在使用Oracle的密码功能(utlpwdmg.sql版本),即数据库9i中安全验证功能。我想进一步了解并且不允许使用一些明显但符合验证标准的密码(如#1)。很显然的方法就是将这些密码和-20002组合并检查得到的结果是否太简单。由于这一验证功能还保留了一系列的数据,最终我创建了一个表格。
您能告诉我怎样从验证功能中而不是从一般的密码中IN (’welcome’, ’blah1’, ’blah2’)查找这一表格吗? 答:你需要对密码验证功能重新编码,并将所有的记录保存在数据库的表格中。假设这些记录都在BAD_WORD这一栏的BAD_PASSWORDS表格中,密码验证功能将显示……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
问:目前,我们正在使用Oracle的密码功能(utlpwdmg.sql版本),即数据库9i中安全验证功能。我想进一步了解并且不允许使用一些明显但符合验证标准的密码(如#1)。很显然的方法就是将这些密码和-20002组合并检查得到的结果是否太简单。由于这一验证功能还保留了一系列的数据,最终我创建了一个表格。您能告诉我怎样从验证功能中而不是从一般的密码中IN (’welcome’, ’blah1’, ’blah2’)查找这一表格吗?
答:你需要对密码验证功能重新编码,并将所有的记录保存在数据库的表格中。假设这些记录都在BAD_WORD这一栏的BAD_PASSWORDS表格中,密码验证功能将显示一个BAD_count 的NUMBER变量。最简单的就是将与后面相同的密码添加在密码验证功能中,这样就统计出了次数,新密码也在BAD_PASSWORDS表格中了,具体操作为:
select count(*) INTO bad_count FROM bad_passwords
where bad_word = new_password;
如果count值为0,那么新密码就没有在BAD_PASSWORDS中,所以count的值至少应为1。
IF bad_count > 0 THEN RAISE APPLICATION ERROR(-20002,’密码不能为一个字’);
若想在BAD_PASSWORDS表格中增加一个新词,只需将其插入这一表格,不需要对密码验证功能重新编码。
作者
Techtarget旗下Searchoracle网站的资深专家,有16年IT行业经验、计算机科学硕士、专攻数据库方向,曾担任系统管理员等职。此外,他还获Oracle 7.3、8和8i的OCP数据库管理员证书,目前为SGT Inc.公司首席DBA。
翻译
相关推荐
-
数据库用户名和密码安全
今天我们更加需要注意确保数据库安全。数据库安全当然包括数据库的用户名和密码安全问题。本文介绍设置用户名和密码的最佳方法、在授予或撤消用户访问权限时我们应该注意的事项以及我们能采取的真正确保用户名和密码安全的方法。
-
如何隐藏用户密码
如何在操作系统层运行ps指令时隐藏Oracle用户的密码?最简单的方法就是用init.ora参数(os_authent_prefix),在外部对用户进行身份识别。