中文参考手册---6MySQL存取权限系统

来源:互联网 发布:域名交易中心 编辑:程序博客网 时间:2024/04/18 09:55
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

MySQL有一个先进但非标准的/权限系统。本节描述它的工作原理。

MySQL权限系统的主要功能是证实连接到一台给定主机的一个用户,并且赋予该用户在一个上selectinsertupdatedelete的权限。

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

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

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

shell>MySQL[-hhost_name][-uuser_name][-pyour_pass]

,选项的另一种形式是。注意在与跟随它后面的口令之间没有空格

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

对于命令行没有的联接参数,使用缺省值:缺省主机名是。缺省用户名是你的Unix登录名。如果没有,则没有提供口令。

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

shell>MySQL-hlocalhost-ujoeshell>MySQL-hlocalhostshell>MySQL-ujoeshell>MySQL

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

在Unix系统上,当你进行一个连接时,你可以指定要使用的不同的缺省值,这样你不必每次在你调用一个客户程序是在命令行上输入他们。这可以有很多方法做到:你能在你的主目录下的配置文件的小节里指定连接参数。文件的相关小节看上去可能像这样:

[client]host=host_nameuser=user_namepassword=your_pass

见。

你可以用环境变量指定连接参数。主机可用指定,MySQL用户名字可用指定(仅对Windows),口令可用指定(但是这不安全,见下一节)。

如果连接参数以多种方法被指定,在命令行上被指定的值优先于在配置文件和环境变量中指定的值,而在配置文件指定的值优先于在环境变量指定的值。

以一种暴露的可被其他用户发现的方式指定你的口令是不妥当的。当你运行客户程序时,你可以使用下列方法指定你的口令,还有每个方法的风险评估:使用一个在命令行上的选项。这很方便但是不安全,因为你的口令对系统状态程序(例如)变得可见,它可以被其他的用户调用来显示命令行。(一般MySQL客户在他们的初始化顺序期间用零覆盖命令行参数,但是仍然有一个短暂间隔时间内参数值可见的。)使用一--password共13页  1            
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>