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

  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语句只撤销部分权限。



阅读更多内容<<上一页 · 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
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接