付与用户的口令,它是可选的。假如你对新用户没有指定IDENTIFIED BY子句,该用户不赋给口令(不平安)。对现有效户,任何你指定的口令将取代老口令。假如你不指定口令,老口令坚持不变,当你用IDENTIFIED BY时,口令字符串用改用口令的字面寄义,GRANT将为你编码口令,不要象你用SET PASSWORD 那样利用password()函数。
WITH GRANT OPTION子句是可选的。假如你包括它,用户可以授与权限经由过程GRANT语句受权给其它用户。你可以用该子句授与其它用户受权的才能。
用户名、口令、数据库和表名在受权表纪录中是巨细写敏感的,主机名和列名不是。
普通地,你可以经由过程扣问几个复杂的成绩来辨认GRANT语句的品种:
GRANT ALL ON samp_db.* TO boris@192.168.128.3 IDENTIFIED BY "ruby" GRANT ALL ON samp_db.* TO fred@192.168.128.% IDENTIFIED BY "quartz" GRANT ALL ON samp_db.* TO rex@192.168.128.0/17 IDENTIFIED BY "ruby"
GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY "ruby"GRANT ALL ON samp_db.* TO fred@res.mars.com IDENTIFIED BY "quartz"0
复制代码
第一条语句授与对全部member表的读权限并设置了一个口令,第二条语句增添了UPDATE权限,当只对expiration列。没需要再指定口令,由于第一条语句已指定了。
假如你想对多个列授与权限,指定一个用逗号分隔的列表。例如,对assistant用户增添member表的地址字段的UPDATE权限,利用以下语句,新权限将加到用户已有的权限中:
GRANT UPDATE (street,city,state,zip) ON samp_db TO assistant@localhost
凡是,你不想授与任何比用户的确需求的权限宽的权限。但是,当你想让用户能创立一个一时表以保留两头了局,但你又不想让他们在一个包括他们不该修正内容的数据库中如许做时,产生了要授与在一个数据库上的绝对宽松的权限。你可以经由过程创立一个分隔的数据库(如tmp)并授与开数据库上的一切权限来停止。例如,假如你想让来自mars.net域中主机的任何用户利用tmp数据库,你可以收回如许的GRANT语句:
GRANT ALL ON tmp.* TO ""@mars.net
在你做完以后,用户可以创立并用tmp.tbl_name模式援用tmp中的表(在用户指定符中的""创立一个匿名用户,任何用户均婚配空白用户名)。1.3 用户应当被答应办理权限吗?
你可以答应一个数据库的具有者经由过程授与数据库上的一切具有者权限来掌握数据库的会见,在受权时,指定WITH GRANT OPTION。例如:假如你想让alicia能从big.corp.com域的任何主机毗连并具有sales数据库中一切表的办理员权限,你可以用以下GRANT语句:
GRANT ALL ON sales.* TO alicia@%.big.corp.com INDETIFIED BY "applejuice" WITH GRANT OPTION
在后果上WITH GRANT OPTION子句答应你把会见受权的权力授与另外一个用户。要注重,具有GRANT权限的两个用户可以彼此受权。假如你只赐与了第一个用户SELECT权限,而另外一个用户有GRANT加上SELECT权限,那末第二个用户可所以第一个用户更“壮大”。2 撤权并删除用户
要作废一个用户的权限,利用REVOKE语句。REVOKE的语法十分相似于GRANT语句,除TO用FROM代替而且没有INDETIFED BY和WITH GRANT OPTION子句:
REVOKE privileges (columns) ON what FROM user user局部必需婚配本来GRANT语句的你想撤权的用户的user局部。privileges局部不需婚配,你可以用GRANT语句受权,然后用REVOKE语句只撤消局部权限。
REVOKE语句只删除权限,而不删除用户。即便你撤消了一切权限,在user表中的用户纪录仍然保存,这意味着用户依然可以毗连办事器。要完整删除一个用户,你必需用一条DELETE语句明白从user表中删除用户纪录:
GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY "ruby"GRANT ALL ON samp_db.* TO fred@res.mars.com IDENTIFIED BY "quartz"1