大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 数据库 -> MySQL用户管理(2)

MySQL用户管理(2)

时间: 2021-07-31 作者:daque

底下就计划少许例子。 1.1 谁能贯穿,从那儿贯穿? 你不妨承诺一个用户从一定的或一系列长机贯穿。有一个极其,即使你领会降职从一个长机贯穿,你不妨将权力控制于单个长机 :grant all on samp_db.* to boris@localhost identified by "ruby"grant all on samp_db.* to fred@res.mars.com identified by "quartz" (samp_db.*道理是“samp_db数据库的一切表)  另一个极其是,你大概有一个常常游览并须要能从寰球各地的长机贯穿的用户max。在这种情景下,你不妨承诺他不管从何处贯穿: grant all on samp_db.* to max@% identified by "diamond" “%”字符起通配符效率,与like形式配合的含意沟通。在上述语句中,它表示着“任何长机”。以是max和max@%等价。这是创造用户最大略的本领,但也是最不安定的。  你不妨承诺一个用户从一个受限的长机汇合考察。比方,要承诺mary从snake.net域的任何长机贯穿,用一个%.snake.net长机指定符: grant all on samp_db.* to mary@.snake.net identified by "quartz";  即使你爱好,用户操作符的长机局部不妨用ip地方而不是一个长机名来给定。你不妨指定一个ip地方或一个包括形式字符的地方,并且,从mysql 3.23,你还不妨指定具备指出用来搜集号的位数的搜集掩码的ip号: 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"  第一个例子指出用户能从其贯穿的一定长机,第二个指定对于c类子网192.168.128的ip形式,而第三条语句中,192.168.128.0/17指定一个17位搜集号并配合具备192.168.128头17位的ip地方。  即使mysql埋怨你指定的用户值,你大概须要运用引号(只将用户名和长机名局部划分加引号)。 grant all on samp_db.president to "my friend"@"boa.snake.net" 1.2 用户该当有什么级其余权力和它们该当实用于什么?  你不妨受权各别级其余权力,全部权力是最宏大的,由于它们实用于任何数据库。要使ethel变成可做任何工作的超等用户,囊括能受权给其它用户,发出下列语句: grant all on *.* to ethel@localhost identified by "coffee" with grant option  on子句中的*.*表示着“一切数据库、一切表”。从安定商量,咱们指定ethel只能从当地贯穿。控制一个超等用户不妨贯穿的长机常常是聪明的,由于它控制了试图破译口令的长机。  有些权力(file、process、reload和shutdown)是处置权力而且只能用"on *.*"全部权力指定符受权。即使你承诺,你不妨受权那些权力,而不受权数据库权力。比方,下列语句树立一个flush用户,他只能发出flush语句。这大概在你须要实行诸如清空日记等的处置剧本中会有效: grant reload on *.* to flushl@localhost identified by "flushpass"  普遍地,你想受权处置权力,吝惜点,由于具有它们的用户不妨感化你的效劳器的操纵。  数据库级权力实用于一个特定命据库中的一切表,它们可经过运用on db_name.*子句赋予: grant all on samp_db to bill@racer.snake.net indetified by "rock" grant select on samp_db to ro_user@% indetified by "rock"  第一条语句向bill受权samp_db数据库中一切表的权力,第二条创造一个庄重控制考察的用户ro_user(只读用户),只能考察samp_db数据库中的一切表,但惟有读取,即用户只能发出select语句。  你不妨列出一系列同声赋予的各个权力。比方,即使你想让用户能读取并能窜改现罕见据库的实质,但不许创造新表或简略表,如次赋予那些权力: grant select,insert,delete,update on samp_db to bill@snake.net indetified by "rock"  对于更精制的考察遏制,你不妨在各个表上受权,或以至在表的每个列上。当你想向用户湮没一个表的局部时,或你想让一个用户只能窜改一定的列时,列一定权力特殊有效。如:  grant select on samp_db.member to bill@localhost indetified by "rock"grant update (expiration) on samp_db. member to bill@localhost 第一条语句赋予对所有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表中简略用户记载: %mysql -u root mysqlmysql>delete from user ->where user="user_name" and host="host_name";mysql>flush privileges;   delete语句简略用户记载,而flush语句报告效劳珍视载受权表。(当你运用grant和revoke语句时,表机动重载,而你径直窜改受权表时不是。)

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.