- 1、本文档共96页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL语言参考
6 MySQL 存取权限系统
MySQL有一个先进但非标准的安全/权限系统。本节描述它的工作原理。
6.1 权限系统做什么
MySQL权限系统的主要功能是证实连接到一台给定主机的一个用户,并且赋予该用户在一个数据库上select、 insert、update和delete的权限。
附加的功能包括有一个匿名的用户和对于MySQL特定的功能例如LOAD DATA INFILE进行授权及管理操作的能力。
6.2 MySQL 用户名和口令
由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 [-h host_name][-u user_name][-pyour_pass ]
-h, -u和-p选项的另一种形式是--host=host_name、--user=user_name和--password=your_pass。注意在-p或--password=与跟随它后面的口令之间没有空格。
注意:在命令行上指定一个口令是不安全的!随后在你系统上的任何用户可以通过打类似这样的命令发现你的口令:ps auxww。见4.15.4 选项文件。
对于命令行没有的联接参数,mysql使用缺省值:
缺省主机名是localhost。
缺省用户名是你的Unix登录名。
如果没有-p,则没有提供口令。
这样, 对一个Unix用户joe,下列命令是等价的:
shellmysql -h localhost -u joe
shellmysql -h localhost
shellmysql -u joe
shellmysql
其它MySQL客户程序有同样表现。
在Unix系统上,当你进行一个连接时,你可以指定要使用的不同的缺省值,这样你不必每次在你调用一个客户程序是在命令行上输入他们。这可以有很多方法做到:
你能在你的主目录下“.f”的配置文件的[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客户在他们的初始化顺序期间用零覆盖命令行参数,但是仍然有一个短暂间隔时间内参数值可见的。)
使用一或--password选项(没有指定your_pass值)。在这种情况下,客户程序请求来自终端的口令:
shellmysql - u user_name - p
Enter password: ********
客户回应“*”字符到作为输入你的口令的终端使得旁观者不能看见它。因为它对其他用户不可见,与在命令行上指定它相比,这样进入你的口令更安
您可能关注的文档
最近下载
- TCASME-半导体用砂轮划片机技术规范及编制说明.pdf
- 《城市经济学》全套教学课件.pptx
- GB/Z 44267-2024自动化系统与集成 工业数据 数字孪生的可视化元素.pdf
- 2024年山东城市服务职业学院单招职业技能测试题库及答案1套.docx VIP
- 读后续写题型解读 理论点拨——高三英语上学期一轮复习专项.pptx VIP
- invt英威腾CHF100A变频器说明书.pdf VIP
- 必威体育精装版JingChaDaXue《灭火救援典型案例》期末试卷( A )参考答案.docx
- 商铺买卖合同范本7篇.docx
- 外研版小学英语一年级起点单词表4上.pdf
- 现代交换原理与技术总结.docx VIP
文档评论(0)