|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。MySQL办理员应当晓得怎样设置MySQL用户账号,指出哪一个用户能够毗连服务器,从那里毗连,毗连后能做甚么。MySQL3.22.11入手下手引进两条语句使得这项事情更简单做:GRANT语句创立MySQL用户并指定其权限,而REVOKE语句删除权限。两条语句饰演了mysql数据库的前端脚色,并供应与间接操纵这些表的内容分歧的另外一种办法。CREATE和REVOKE语句影响4个表:受权表
内容
user能毗连服务器的用户和他们具有的任何全局权限
db数据库级权限
tables_priv表级权限
columns_priv列级权限
另有第5个受权表(host),但它不受GRANT和REVOKE的影响。
当你对一个用户收回一条GRANT语句时,在user表中为该用户创立一笔记录。假如语句指定任何全局权限(办理权限或合用于一切数据库的权限),这些也纪录在user表中。假如你指定命据库、表和列级权限,他们被分离纪录在db、tables_priv和columns_priv表中。
用GRANT和REVOKE比间接修正受权表更简单些,但是,倡议你浏览一下《MySQL平安性指南》。这些表非常主要,并且作为一位办理员,你应当了解它们怎样超出GRANT和REVOKE语句的功效程度。
鄙人面的章节中,我们将先容怎样设置MySQL用户账号并受权。我们也触及怎样撤权和从受权表中删除用户。
你大概也想思索利用mysqlaccess和mysql_setpermission剧本,它是MySQL分发的一部分,它们是Perl剧本,供应GRANT语句的另外一种选择设置用户账号。mysql_setpermission必要安装DBI撑持。
1创立用户并受权
GRANT语句的语法看上往像如许:GRANTprivileges(columns)ONwhatTOuserIDENTIFIEDBY"password"WITHGRANTOPTION
要利用该语句,你必要填写以下部分:
privileges
授与用户的权限,下表列出可用于GRANT语句的权限指定符:
权限指定符权限同意的操纵
ALTER修正表和索引
CREATE创立数据库和表
DELETE删除表中已有的纪录
DROP丢弃(删除)数据库和表
INDEX创立或丢弃索引
INSERT向表中拔出新行
REFERENCE未用
SELECT检索表中的纪录
UPDATE修正现存表纪录
FILE读或写服务器上的文件
PROCESS检察服务器中实行的线程信息或杀逝世线程
RELOAD重载受权表或清空日记、主机缓存或表缓存。
SHUTDOWN封闭服务器
ALL一切;ALLPRIVILEGES同义词
USAGE特别的“无权限”权限
上表显现在第一组的权限指定符合用于数据库、表和列,第二组数办理权限。一样平常,这些被绝对严厉地受权,由于它们同意用户影响服务器的操纵。第三组权限特别,ALL意味着“一切权限”,UASGE意味着无权限,即创立用户,但不授与权限。
columns
权限使用的列,它是可选的,而且你只能设置列特定的权限。假如命令有多于一个列,应当用逗号分隔它们。
what
权限使用的级别。权限能够是全局的(合用于一切数据库和一切表)、特定命据库(合用于一个数据库中的一切表)或特定表的。能够经由过程指定一个columns字句是权限是列特定的。
user
权限授与的用户,它由一个用户名和主机名构成。在MySQL中,你不但指定谁能毗连,另有从那里毗连。这同意你让两个同名用户从分歧中央毗连。MySQL让你辨别他们,并相互自力地付与权限。
MySQL中的一个用户名就是你毗连服务器时指定的用户名,该名字不用与你的Unix登录名或Windows名接洽起来。缺省地,假如你不明白指定一个名字,客户程序将利用你的登录名作为MySQL用户名。这只是一个商定。你能够在受权表中将该名字改成nobody,然后以nobody毗连实行必要超等用户权限的操纵。
password
付与用户的口令,它是可选的。假如你对新用户没有指定IDENTIFIEDBY子句,该用户不赋给口令(不平安)。对现有效户,任何你指定的口令将取代老口令。假如你不指定口令,老口令坚持稳定,当你用IDENTIFIEDBY时,口令字符串用改用口令的字面寄义,GRANT将为你编码口令,不要象你用SETPASSWORD那样利用password()函数。
WITHGRANTOPTION子句是可选的。假如你包括它,用户能够授与权限经由过程GRANT语句受权给别的用户。你能够用该子句授与别的用户受权的才能。
用户名、口令、数据库和表名在受权表纪录中是巨细写敏感的,主机名和列名不是。
一样平常地,你能够经由过程扣问几个复杂的成绩来辨认GRANT语句的品种:
谁能毗连,从那儿毗连?
用户应当有甚么级其余权限,他们合用于甚么?
用户应当同意办理权限吗?
为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。 |
|