本空间收录 snow 的一些技术日记。 如果喜欢音乐的朋友请前往 snow 另一个空间 http://snowhite2000.itpub.net

关于 Oracle 对 Password 的一些要求

上一篇 / 下一篇  2009-09-10 03:49:07 / 个人分类:Oracle Database

写这个题目是因为一件很有趣的事情:

有一天,一个朋友跟我说,碰到一件很诡异的事情,就是安装数据库,每次到建立 sample 数据库的时候就死机。

我就说,那你之后再用 DBCA 建立数据库好了,先把软件安装好,看看有没有错。

他说,不是这个原因,查来查去,是因为定义用户的密码 password 的时候,用了一个符号“@”所以报错的。

我大笑,说,你现在知道 DBA 跟你们这些玩票的不一样了?Oracle 对 password 是有规定的,法定只允许三个符号,所有的 DBA 都知道的。

朋友愤怒!“就是因为 Oracle 这样變態的规定 Password 只能使用三个符号,就让你们这些 DBA 拿高薪么?”

我 nod,“DBA 总不能是只吃干饭的,不是么,总要花时间看文档,记住文档的内容吧”。

 

其实越来越惭愧,DBA 确实越来越没有什么可以骄傲的东西了,因为 Oracle 也在致力于,怎样更加容易的管理数据库界面。

还是来说说 Oracle 关于 password 有什么要求吧,在 11g 之前,Oracle 这样规定的:

1 .  1 到 30 个字符 (characters)
2.  开头的那个必须是字幕,不是符号或者数字
3.  只接受字母,数字,以及三个符号 "#", "_" and "$"

snow 有一些朋友非常喜欢挑战极限,你越不让我做,我就越做。如果我一定要用数字开头一个 password 行不行呢,答案是,行,不过你要用双引号:

SQL> create user test identified by "123abc";
User created.

SQL> grant create session to test;
Grant succeeded.

SQL> connect test/123abc
Connected.
SQL>

你可以去试验及其的极限挑战,但是生产系统还是听Oracle 的规定比较好。另外,还有两个符号比较麻烦,一个就是朋友提到过的 "@" 还有一个是 "&",你有兴趣自己去解决这两个麻烦,然后告诉 snow 我你的解决方法。snow 从来不给自己找这样的麻烦,不过你有解决方案,snow 还是非常感兴趣的。

Oracle 在新版本的 11g  中对 password 的要求作了一些,一些,恩找不到合适的词,不是改进,可以说是加强吧,也不完全是加强:

一,还是最长的 30 charactors 因为这个长度足够保险了,但是,官方文档说可以接受其他的字符,还是要加上双引号,哈哈,就是说,本来是 undoc 的功能,终于 doc 了,注意,还是需要双引号。還有一件事,就是接受了 multi-bytes 的字符,如果有漢化的環境,難道 password 能接受中文字?這倒是有趣,可惜我沒有漢化的環境,要不你們誰試驗一下?告訴我好玩不好玩。

二,请不要尝试 双引号的任何方向(英文的雙引號 “ ” 没方向?),这个斜线 "/" 逗号之类的出现在 password 中,用这寫东西在 password 裡面本來就很变态,如果你有兴趣,试验出来之后请告诉我怎么做成功的。

三、嗯嗯,终于接受了 password 的大小写的不同了,以前版本的 oracle 对待password 的大小写,是一视同仁的,现在如同 unix 系统那样可以区分。不过不用怕,这个功能用了一个 初始参数来控制:
sec_case_sensitive_logon

缺省值是 fales,  估计再过一两个版本,就要变成 true 了。详细的内容自己去看文档吧,我着急赶了去赴约会,差点忘了,給人電話追到手機上。

 

 


TAG:

引用 删除 Michael Chen   /   2009-09-10 11:26:22
我要是开发软件做成这样的,早被那些consultant给骂死了
引用 删除 Guest   /   2009-09-10 11:26:18
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar