MySQL若何设置口令

作者:天极软件 源头:天极软件

在背面年夜节的例子里说明晰明晰一个紧张的准绳:当你运用INSERTUPDATE语句存储一个非空的口令时,你必需运用PASSWORD()函数加密它。这是因为在user表中以加密体式格局存储口令,而不是作为纯文本。若是你健忘这个理想,你可以像如许试图设置口令:

shell> mysql -u root mysql 
mysql> INSERT INTO user (Host,User,Password) VALUES('%','jeffrey','biscuit'); 
mysql> FLUSH PRIVILEGES

功效是纯文本值'biscuit'作为口令被存储在user表中。在用户jeffrey试图用这个口令衔接效劳器时,mysql客户用PASSWORD()加密它并且将功效送给效劳器,效劳器比拟在user表中的值(它是纯文本值'biscuit')和加密的口令(而不是 'biscuit'),比拟失败并且效劳器拒绝衔接:

shell> mysql -u jeffrey -pbiscuit test
Access denied

因为当他们被拔出user表时,口令必需被加密,相反,INSERT语句应该象如许被指定:

mysql> INSERT INTO user (Host,User,Password)
       VALUES('%','jeffrey',PASSWORD('biscuit'));

当你运用SET PASSWORD语句时,你也必需运用PASSWORD()函数:

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 

若是你运用GRANT ... IDENTIFIED BY语句或mysqladmin password命令设置口令,PASSWORD()函数是不必要的。他们都思量到为你加密口令,多以你可像如许指定一个口令'biscuit'

mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';


shell> mysqladmin -u jeffrey password biscuit 

留神: PASSWORD()不因此在Unix口令加密的异常举措实验口令加密。你不该该假定若是你的Unix口令和你的MySQL口令是一样的,PASSWORD()将招致与在Unix口令文件被存储的异常的加密值。见6.2 MySQL 用户名和口令。





版权声明: 原创作品,容许转载,转载时请务必以超链接体式格局标明文章 原始来由 、作者信息和本声明。否则将清查功令责任。

posted @ 2011-03-07 17:55  蓝色的天空III  阅读(126)  评论(0编辑  收藏  举报