加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL存取权限系统

发布时间:2016-01-19 00:26:39 所属栏目:MySql教程 来源:网络整理
导读:1. MySQL 用户名和口令 * MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQ
1. MySQL 用户名和口令

* MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名登录,但是这仅仅为了方便,客户程序允许用-u或--user选项指定一个不同的名字。及与安全的考虑,所有的MySQL用户名都应该有口令。

* MySQL用户名最长可以是16各字符;典型地,Unix用户名限制为8个字符。

* MySQL口令与Unix口令没关系。

* MySQL加密口令使用了一个Unix登录期间所用的不同算法,PASSWORD()和ENCRYPT()

函数PASSWORD(str)

从纯文本口令str计算一个口令字符串。该函数被用于为了在user授权表的Password列中存储口令而加密MySQL口令。

mysql> select PASSWORD('badpwd');

-> '7f84554057dd964b'

PASSWORD()加密是非可逆的。PASSWORD()不以与Unix口令加密的相同的方法执行口令加密。你不应该假定如果你的Unix 口令和你的MySQL口令是一样的,PASSWORD()将导致与在Unix口令文件存储的相同的加密值。见ENCRYPT()。

ENCRYPT(str[,salt])

使用Unix crypt()系统调用加密str。salt参数应该是一个有2个字符的字符串。(MySQL 3.22.16中,salt可以长于2个字符。)

mysql> select ENCRYPT("hello");

-> 'VxuFAJXVARROc'

如果crypt()在你的系统上不可用,ENCRYPT()总是返回NULL。ENCRYPT()只保留str起始8个字符而忽略所有其他,至少在某些系统上是这样。这将由底层的crypt()系统调用的行为决定。

1. 与MySQL服务器连接

语法格式:

shell> mysql [-h host_name][-u user_name][-pyour_pass ]

-h, -u和-p选项的另一种形式是--host=host_name、--user=user_name和--password=your_pass。

注意:在-p或--password=与跟随它后面的口令之间没有空格。(在命令行上指定一个口令是不安全的!)

对于命令行没有的联接参数,mysql使用缺省值:

* 缺省主机名是localhost。

* 缺省用户名是你的Unix登录名。

* 如果没有-p,则没有提供口令。

缺省值参数的指定:

在你的主目录下“.my.cnf”的配置文件的[client]小节里指定连接参数:

[client]

host=host_name

user=user_name

password=your_pass

注:命令行上被指定的值优先于在配置文件和环境变量中指定的值

最安全的方法是让客户程序提示口令或在一个适当保护的“.my.cnf”文件中指定口令。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读