MySQL存取权限系统

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”文件中指定口令。

时间: 2024-09-27 22:56:31

MySQL存取权限系统的相关文章

MySQL中文参考手册7(MySQL 存取权限系统) grant 设置密码 password

mysql|word|参考|参考手册|中文 MySQL中文参考手册7(MySQL 存取权限系统)转载 译者:晏子 [返回][转发] 译者:晏子 (clyan@sohu.com)主页:http://linuxdb.yeah.net6 MySQL 存取权限系统MySQL有一个先进但非标准的安全/权限系统.本节描述它的工作原理.  6.1 权限系统做什么MySQL权限系统的主要功能是证实连接到一台给定主机的一个用户,并且赋予该用户在一个数据库上select. insert.update和delete的

MySQL的存取权限系统

看到很多网友提出关于MySQL登录不上服务器的问题,包括有的是在PHP中调用MySQL时发生的不能登录MySQL数据库服务器的问题,以为是PHP出了问题.其实是MySQL权限的问题. MySQL的权限系统在MySQL的手册中是很长的一章,我把它打印出来足足印了20多页!这里就将我对它的理解简要地写出来,希望能对刚刚接触MySQL的同志有点帮助:有说得不对的地方,也请同志们指出. 在我了解了MySQL的权限机制后,不由得不赞叹它的严密与巧妙:也许所有的数据库系统都是如此罢,只是别的大型数据库把权限

详解MySQL中的存取权限_Mysql

看到很多网友提出关于MySQL登录不上服务器的问题,包括有的是在PHP中调用MySQL时发生的不能登录MySQL数据库服务器的问题,以为是PHP出了问题.其实是MySQL权限的问题. MySQL的权限系统在MySQL的手册中是很长的一章,我把它打印出来足足印了20多页!这里就将我对它的理解简要地写出来,希望能对刚刚接触MySQL的同志有点帮助:有说得不对的地方,也请同志们指出. 在我了解了MySQL的权限机制后,不由得不赞叹它的严密与巧妙:也许所有的数据库系统都是如此罢,只是别的大型数据库把权限

MySQL应用技巧之存取权限

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

《PHP、MySQL和Apache入门经典(第5版)》一2.8 MySQL权限系统简介

2.8 MySQL权限系统简介 PHP.MySQL和Apache入门经典(第5版) MySQL权限系统总是起作用的.当你第一次尝试连接MySQL服务器的时候,并且对于每一个后续的动作,MySQL都会检查以下3件事情. 你从哪里访问(你的主机)? 你说你是谁(你的用户名和密码)? 允许你做什么(你的命令权限)? 所有这些信息都存储在一个名为mysql的数据库中,当安装MySQL的时候,自动创建该数据库.在mysql数据库中,有如下几个和权限相关的表. columns_priv--为一个表中的具体字

《PHP、MySQL和Apache入门经典(第5版)》一一2.8 MySQL权限系统简介

2.8 MySQL权限系统简介 PHP.MySQL和Apache入门经典(第5版) MySQL权限系统总是起作用的.当你第一次尝试连接MySQL服务器的时候,并且对于每一个后续的动作,MySQL都会检查以下3件事情. 你从哪里访问(你的主机)? 你说你是谁(你的用户名和密码)? 允许你做什么(你的命令权限)? 所有这些信息都存储在一个名为mysql的数据库中,当安装MySQL的时候,自动创建该数据库.在mysql数据库中,有如下几个和权限相关的表. columns_priv--为一个表中的具体字

MySQL权限系统之权限知识和管理:校对规则\列表\帐号

本篇文章将会讲述MySQL的权限校对规则.权限项列表,以及会从数据库帐号和权限的设置层面,讲述如何使我们的数据库访问或数据操纵更安全. 帐号信息校验规则 客户端向mysql数据库服务器端发送的连接请求是否成功,除了网络.防火墙等因素制约其能否访问到服务器外,最重要的是必须提供五个参数信息:客户端的IP地址或主机名称.数据库服务器的IP地址或http://www.aliyun.com/zixun/aggregation/12321.html">网络域名.数据库访问的帐号和对应的密码,以及数据

MYSQL教程:MySQL服务器权限表

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化.这些权限表分别user,db,table_priv,columns_priv和host.下面分别介绍一下这些表的结构和内容: user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的. db权限表:记录各个帐号在各个数据库上的操作权限. table_priv权限表:记录数据表级的操作权限. columns_priv权限表:记录数据列级的操作权限. ho

MySQL用户权限(Host,User,Password)管理(mysql.user)

1:新增用户: 注:mysql数据库下user表中,Host和User为两个主键列(primary key),已经各版本下非空未设置默认字段. 登录后,切换db: mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed 新增用