2010-01-08 50 views
4

MySql 5.1和SQL Server 2008(Web版,标准版)有长度限制以外的任何功能密码限制吗?任何形式的元字符都不是好主意,比如爆炸,管道,散列,斜线,胡萝卜等等。SQL Server和MySql中的密码限制

我知道MySql 5.1的密码长度限制是16位硬编码的字符,但我想知道,任何元字符(即非字母数字)是一个坏主意吗?这是SQL Server 2008 Web版本中的标准吗?

所以特别是:可以像符号:

/`〜>:} {[] ^可以成功地使用?

我希望对数据库没有任何影响,但我对企业数据库系统中的密码存储知之甚少,但我一直在寻找确认或解释。

+1

。小行星:谢谢你说的客气话,我想,如果你没有得到更好的答案,那么如果你能把我标记为s“accepted” TIA,roland –

回答

4
mysql> create user test identified by '/`~>:}{[]^'; 
Query OK, 0 rows affected (0.13 sec) 

是 - 你其实可以现在用这个命令行登录:

C:\Documents and Settings\rbouman2>mysql -utest -h127.0.0.1 -P3351 -p 
Enter password: ********** 

我试图-p后直接输入密码,但没有窗户的工作 - 它认为我想如果我这样做,请调用more。但我100%确定这是在Windows外壳。 MySQL本身认为这是一个有效的密码。

+0

简洁且令人难以置信的帮助。谢谢!我想知道有没有人知道这个MSSQL .. – asteroid

+0

@Roland,那么MySQL服务器的实际密码限制是什么? – Pacerier

+0

@Pacerier只要你使用干净的方法(http://dev.mysql.com/doc/refman/5.7/en/assigning-passwords.html)来分配密码(即不直接更新mysql.user表) ),我不认为有任何限制,因为MySQL存储散列而不是实际的密码。 –

4

所有这些字符在SQL Server密码都很好,但支持它的文档却很粗略。

MSDN文档on SQL Server password强度意味着SQL Server密码中允许包含空格字符的任何符号,但如果它包含空格,则必须在T-SQL语句中进行分隔。

Microsoft SQL Server密码最多可包含128个字符,包括字母,符号和数字。由于在Transact-SQL语句中经常使用登录名,用户名,角色和密码,因此某些符号必须用双引号(“)或方括号([])括起来。在SQL中使用这些分隔符时,SQL服务器登录,用户,角色或密码具有以下特点:

  • 包含或以空格字符开始

  • 开始于$或@字符

MSDN文档on password policy明确确认以下字符是允许的:! $#%

而且,正如您已经知道的那样,相同的文档强烈建议您使用“尽可能长且复杂”的密码。

0

注意,尽管MYSQL可能工作,但您的php/http守护进程/ .htaccess在传递它们之前可能会对req的一些奇怪的事情,我有一个密码($和!),它不起作用从基于php-mysql的网页,但DID工作从控制台... 8个字符的密码。$ db_pass =“($ JlKl1!”; 你知道什么,它失败了, 更改密码为“test”。和巴姆,它的作品。 更改密码可笑长,(和完全没有“$”或“!”或“(”)中,它也工作了的东西。

0

根据我的经验,这是反斜杠\和单引号'你“会想避免在MySQL密码从我的测试中,下列特殊字符显示是良好的使用:

[email protected]#$%^&*:./?=+-_[]{}()<> 

此外,32个字符的密码似乎是好使用,也