MySQL的用户设置与授权
同义词。注意:如果你允许匿名用户连接MySQL服务器(它是缺省的),你也应该增加所有本地用户如 user@localhost,因为否则,当用户试图从本地机器上登录到MySQL服务器时,对于mysql.user表中的本地主机的匿名用户条目将被使用!匿名用户通过插入有User=''''的条目到mysql.user表中来定义。通过执行这个查询,你可以检验它是否作用于你:
mysql> SELECT Host,User FROM mysql.user WHERE User=''''; ·password 分配给该用户的口令。这也是可选的。 在MySQL 3.22.12或以后,如果创建一个新用户或如果你有全局授予权限,用户的口令将被设置为由IDENTIFIED BY子句指定的口令,如果给出一个。如果用户已经有了一个口令,它被一个新的代替。 警告:如果你创造一个新用户但是不指定一个IDENTIFIED BY子句,用户没有口令。这是不安全的。 ·WITH GRANT OPTION子句是可选的。 WITH GRANT OPTION子句给与用户有授予其他用户在指定的权限水平上的任何权限的能力。你应该谨慎对待你授予他grant权限的用户,因为具有不同权限的两个用户也许能合并权限! 创建用户并授权的实例 创建一个具有超级用户权利的用户: mysql>GRANT ALL ON *.* TO anyname@localhost IDENTIFIED BY "passwd"->WITH GRANT OPTION 该语句将在user表中为anyname@localhost创建一个记录,打开所有权限。 数据库级权限用一个ON db_name.*子句而不是ON *.*进行授权: mysql>GRANT ALL ON sample.* TO boris@localhost IDENTIFIED BY "ruby" 这些权限不是全局的,所以它们不存储在user表中,我们仍然需要在user表中创建一条记录(使得用户能连接),但我们也需要创建一个db表记录记录数据库集的权限。 直接修改授权表创建用户并授权 如果你还记得前面的介绍,你应该能即使不用GRANT语句也能做GRANT做的事情。记住在你直接修改授权表时,你将通知服务器重载授权表,否则他不知道你的改变。你可以执行一个mysqladmin flush-privileges或mysqladmin reload命令和FLUSH PRIVILEGES语句强迫一个重载。如果你忘记做这个,你会疑惑为什么服务器不做你想做的事情。 下列GRANT语句创建一个拥有所有权的超级用户。包括授权给别人的能力: GRANT ALL ON *.* TO anyname@localhost IDENTIFIED BY "passwd" WITH GRANT OPTION 该语句将在user表中为anyname@localhost创建一个记录,打开所有权限,因为这里是超级用户(全局)权限存储的地方,要用INSERT语句做同样的事情,语句是: INSERT INTO user& |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |