li
  当前位置:主页 > 基础知识 > 文章内容
li
MySQL数据库账户授权的相关管理解析(2)
来源: www.ixdba.net  作者: ixdba.net技术社区    时间:2008-03-23   阅读:5  
本文章共4977字,分4页,当前第2页,快速翻页:
 

  password

  赋予用户的口令,它是可选的。如果你对新用户没有指定IDENTIFIED BY子句,该用户不赋给口令(不安全)。对现有用户,任何你指定的口令将代替老口令。如果你不指定口令,老口令保持不变,当你用IDENTIFIED BY时,口令字符串用改用口令的字面含义,GRANT将为你编码口令,不要象你用SET PASSWORD 那样使用password()函数。

  WITH GRANT OPTION子句是可选的。如果你包含它,用户可以授予权限通过GRANT语句授权给其它用户。你可以用该子句给与其它用户授权的能力。

  用户名、口令、数据库和表名在授权表记录中是大小写敏感的,主机名和列名不是。

  一般地,你可以通过询问几个简单的问题来识别GRANT语句的种类:

  用户应该有什么级别的权限,他们适用于什么?

  用户应该允许管理权限吗?

  下面就讨论一些例子。

  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语句。这可能在你需要执行诸如清空日志等的管理脚本中会有用:



阅读更多内容<<上一页 · 1 · 2 · 3 · 4 · 下一页>>


  上一篇: 从MySQL到ORACLE程序迁移的注意事...   下一篇: 通过PHP连接My SQL的两种方法简介
li
 §相关评论  
 热点文章

·RewriteRule重写规则的语法:A
·apache配置文件httpd.conf参数
·Apache的配置文件http.conf参数
·HTTP协议中POST、GET、HEAD等参
·XAMPP命令之LAMPP
·Linux中安装XAMPP(LAMPP)服务器
·网页禁止右键、禁止复制等代码
·java.lang.OutOfMemoryError:
·Mysql数据库在Linux系统常用命
·mysql问答:MySQL数据库连接过多
·MySQL数据库中Show命令的用法
li
 编辑推荐
·RewriteRule重写规则的语法:A
·apache配置文件httpd.conf参数
·Apache的配置文件http.conf参数
·HTTP协议中POST、GET、HEAD等参
·XAMPP命令之LAMPP
·Linux中安装XAMPP(LAMPP)服务器
·网页禁止右键、禁止复制等代码
·java.lang.OutOfMemoryError:
·Mysql数据库在Linux系统常用命
·mysql问答:MySQL数据库连接过多
·MySQL数据库中Show命令的用法
li
 相关篇章
·从MySQL到ORACLE程序迁移的注意事...
·向你介绍MySQL数据库备份的简单知...
·MySQL使用tips
·MySQL数据库批量导入脚本
·让MySQL与OpenOffice共舞
·MYSQL到ORACLE程序迁移的注意事项
·MYSQL数据库的用户帐号管理基础知...
·[MySQL]服务器的启动与停止 (2)
·关于PHP5及MySQL相关程序的安装
·mysql出错代码解析
·通过PHP连接My SQL的两种方法简介
·如何修改遗失的MySQL的ROOT用户密...
·六大步保护MySQL数据库中重要数据
·优化MySQL数据库查询的三种方法简...
·用Perl DBI连接MySQL数据库
·MySQL 4.1数据库中数据转换注意事...
·用Apache与MySQL整合实现基本身份...
·教你编写高质量、高性能的MySQL语...
·保护MySQL数据库中重要的数据注意...
·用新的PHP插件实现MySQL为基础的...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接