Access教程
  • sql server教程
  • MySQL教程 DB2教程 ORACLE教程
    当前位置:教程 > 数据库 > sql server教程 > 正文

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

    编辑:教程网 来源:网络 时间:2011年09月10日 15:46

    MySQL中文参考手册7(MySQL存取权限系统)-F5ofz

    转载译者:晏子

    〖返回〗〖转发〗

    译者:晏子([email protected])主页:http://linuxdb.yeah.net
    6MySQL存取权限系统
    MySQL有一个先进但非标准的安全/权限系统。本节描述它的工作原理。

    6.1权限系统做什么
    MySQL权限系统的主要功能是证实连接到一台给定主机的一个用户,并且赋予该用户在一个数据库上select、insert、update和delete的权限。

    附加的功能包括有一个匿名的用户和对于MySQL特定的功能例如LOADDATAINFILE进行授权及管理操作的能力。

    6.2MySQL用户名和口令
    由MySQL使用用户名和口令的方法与Unix或Windows使用的方式有很多不同之处:

    MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名登录,但是这仅仅为了方便。客户程序允许用-u或--user选项指定一个不同的名字,这意味着无论如何你不能使得一个数据库更安全,除非所有的MySQL用户名都有口令。任何人可以试图用任何名字连接服务器,而且如果他们指定了没有口令的任何名字,他们将成功。
    MySQL用户名最长可以是16各字符;典型地,Unix用户名限制为8个字符。
    MySQL口令与Unix口令没关系。在你使用登录到一台Unix机器口令和你使用在那台机器上存取一个数据库的口令之间没有必要有关联。
    MySQL加密口令使用了一个Unix登录期间所用的不同算法,见7.4.12杂项函数一节中描述PASSword()和ENCRYPT()函数部分。

    6.3与MySQL服务器连接
    当你想要存取一个MySQL服务器时,MySQL客户程序一般要求你指定连接参数:你想要联接的主机、你的用户名和你的口令。例如,mysql客户可以象这样启动(可选的参数被包括在“[”和“]”之间):

    shell>mysql[-hhost_name][-uuser_name][-pyour_pass]
    -h,-u和-p选项的另一种形式是--host=host_name、--user=user_name和--password=your_pass。注意在-p或--password=与跟随它后面的口令之间没有空格。

    注意:在命令行上指定一个口令是不安全的!随后在你系统上的任何用户可以通过打类似这样的命令发现你的口令:psauxww。见4.15.4选项文件。

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

    缺省主机名是localhost。
    缺省用户名是你的Unix登录名。
    如果没有-p,则没有提供口令。

    这样,对一个Unix用户joe,下列命令是等价的:

    shell>mysql-hlocalhost-ujoe
    shell>mysql-hlocalhost
    shell>mysql-ujoe
    shell>mysql

    其它MySQL客户程序有同样表现。

    在Unix系统上,当你进行一个连接时,你可以指定要使用的不同的缺省值,这样你不必每次在你调用一个客户程序是在命令行上输入他们。这可以有很多方法做到:

    你能在你的主目录下“.my.cnf”的配置文件的[client]小节里指定连接参数。文件的相关小节看上去可能像这样:
    [client]
    host=host_name
    user=user_name
    password=your_pass

    见4.15.4选项文件。

    你可以用环境变量指定连接参数。主机可用MYSQL_HOST指定,MySQL用户名字可用USER指定(仅对Windows),口令可用MYSQL_PWD指定(但是这不安全,见下一节)。
    如果连接参数以多种方法被指定,在命令行上被指定的值优先于在配置文件和环境变量中指定的值,而在配置文件指定的值优先于在环境变量指定的值。

    6.4使你的口令安全
    以一种暴露的可被其他用户发现的方式指定你的口令是不妥当的。当你运行客户程序时,你可以使用下列方法指定你的口令,还有每个方法的风险评估:

    使用一个在命令行上-pyour_pass或--password=your_pass的选项。这很方便但是不安全,因为你的口令对系统状态程序(例如ps)变得可见,它可以被其他的用户调用来显示命令行。(一般MySQL客户在他们的初始化顺序期间用零覆盖命令行参数,但是仍然有一个短暂间隔时间内参数值可见的。)

  • 原文来自 教程网 转载请注明:http://www.websmill.com/shujuku/sql_server/22489.html

  • 上一篇:DTS--在变量或是在临时表和表变量中使用Input Global Variables
  • 下一篇:SQL Server数据库技术(09)