MySQL中文参考手册7(MySQL存取权限系统)grant设置密码password
来源:互联网 作者: 出处:综艺读书 2007-07-18tables_priv和columns_priv表在Host、Db和User字段上被排序。这类似于db表的排序,尽管因为只有Host字段可以包含通配符,但排序更简单。
|
|
|||
对管理请求(shutdown、reload等等),服务器仅检查user表条目,因为那是唯一指定管理权限的表。如果条目许可请求的操作,存取被授权了,否则拒绝。例如,如果你想要执行mysqladmin shutdown,但是你的user表条目没有为你授予shutdown权限,存取甚至不用检查db或host表就被拒绝。(因为他们不包含Shutdown_priv行列,没有这样做的必要。)
对数据库有关的请求(insert、update等等),服务器首先通过查找user表条目来检查用户的全局(超级用户)权限。如果条目允许请求的操作,存取被授权。如果在user表中全局权限不够,服务器通过检查db和host表确定特定的用户数据库权限:
- 服务器在db表的Host、Db和User字段上查找一个匹配。 Host和User对应连接用户的主机名和MySQL用户名。Db字段对应用户想要存取的数据库。如果没有Host和User的条目,存取被拒绝。
- 如果db表中的条目有一个匹配而且它的Host字段不是空白的,该条目定义用户的数据库特定的权限。
- 如果匹配的db表的条目的Host字段是空白的,它表示host表列举主机应该被允许存取数据库的主机。在这种情况下,在host表中作进一步查找以发现Host和Db字段上的匹配。如果没有host表条目匹配,存取被拒绝。如果有匹配,用户数据库特定的权限以在db和host表的条目的权限,即在两个条目都是'Y'的权限的交集(而不是并集!)计算。(这样你可以授予在db表条目中的一般权限,然后用host表条目按一个主机一个主机为基础地有选择地限制它们。)
在确定了由db和host表条目授予的数据库特定的权限后,服务器把他们加到由user表授予的全局权限中。如果结果允许请求的操作,存取被授权。否则,服务器检查在tables_priv和columns_priv表中的用户的表和列权限并把它们加到用户权限中。基于此结果允许或拒绝存取。
用布尔术语表示,前面关于一个用户权限如何计算的描述可以这样总结:
global privileges
OR (database privileges AND host privileges)
OR table privileges
OR column privileges
它可能不明显,为什么呢,如果全局user条目的权限最初发现对请求的操作不够,服务器以后把这些权限加到数据库、表和列的特定权限。原因是一个请求可能要求超过一种类型的权限。例如,如果你执行一个INSERT ... SELECT语句,你就都要insert和select权限。你的权限必须如此以便user表条目授予一个权限而db表条目授予另一个。在这种情况下,你有必要的权限执行请求,但是服务器不能自己把两个表区别开来;两个条目授予的权限必须组合起来。
host表能被用来维护一个“安全”服务器列表。在TcX,host表包含一个在本地的网络上所有的机器的表,这些被授予所有的权限。
你也可以使用host表指定不安全的主机。假定你有一台机器public.your.domain,它位于你不认为是安全的一个公共区域,你可以用下列的host表条目子允许除了那台机器外的网络上所有主机的存取:
+--------------------+----+-
| Host | Db | ...
+--------------------+----+-
| public.your.domain | % | ... (所有权限设为 'N')
| %.your.domain | % | ... (所有权限设为 'Y')
+--------------------+----+-
当然,你应该总是测试你在授权表中的条目(例如,使用mysqlaccess)让你确保你的存取权限实际上以你认为的方式被设置。
6.9 权限更改何时生效
当mysqld启动时,所有的授权表内容被读进存储器并且从那点生效。
用GRANT、REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到。
如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。
当服务器注意到授权表被改变了时,现存的客户连接有如下影响:
- 表和列权限在客户的下一次请求时生效。
- 数据库权限改变在下一个USE db_name命令生效。
- 全局权限的改变和口令改变在下一次客户连接时生效。
·系统优化大全 (13868篇文章)
·系统安全设置 (18473篇文章)
·MySQL数据备份 (1667篇文章)
·系统安装手册 (16348篇文章)
·系统备份专题 (13473篇文章)
·Cisco密码恢复专题 (2681篇文章)
·Windows权限设置 (7758篇文章)
·MySQL (1573篇文章)
·MySQL安全 (8220篇文章)
·防止sql注入的简单方法 (1903次浏览)
·IIS、ASP.NET和SQLServer的安全性问题 (112次浏览)
·SQL Server 2005对海量数据处理 (47次浏览)
·50种方法巧妙优化SQL Server数据库 (37次浏览)
·SQL Server连接VFP数据库的实现 (35次浏览)
·SQL循序渐进(15)IN 和 BETWEEN 条件运算符 (27次浏览)
·解决SQL Server虚拟内存不足情况 (17次浏览)
·打造SQL Server2000的安全策略 (16次浏览)
·两种SQL Server灾难恢复方法 (9次浏览)
·防止sql注入的简单方法 (1903次浏览)
·SQL Server开发者Oracle快速入门 (181次浏览)
·精细分析SQL server服务器的内存配置 (155次浏览)
·IIS、ASP.NET和SQLServer的安全性问题 (112次浏览)
·利用标准SQL语句实现查询记录分页 (55次浏览)
·比较SQL Server约束和DML触发器 (49次浏览)
·SQL Server 2005对海量数据处理 (47次浏览)
·初探 SQL Server 2008 “Katmai ” (42次浏览)
·如何对SQL Server数据表和数据库进行迭代操作 (41次浏览)
·防止sql注入的简单方法 (1903次浏览)
·MS-SQL开发常用汇总和t-sql技巧集锦 (404次浏览)
·SQL Server开发者Oracle快速入门 (181次浏览)
·轻松维护SQL Server 2005数据库 (160次浏览)
·精细分析SQL server服务器的内存配置 (155次浏览)
·教你如何在SQL Server计算列和平均值 (137次浏览)
·SQL Server 查询分析器快捷键集合 (123次浏览)
·解析SQL Server数据在不同数据库中的应用 (118次浏览)
·IIS、ASP.NET和SQLServer的安全性问题 (112次浏览)
·MySQL中文参考手册7(MySQL存取权限系统)grant设置 07-18
·IIS、ASP.NET和SQLServer的安全性问题 07-16
·SQL Server连接VFP数据库的实现 07-16
·SQL循序渐进(15)IN 和 BETWEEN 条件运算符 07-15
·解决SQL Server虚拟内存不足情况 07-13
·50种方法巧妙优化SQL Server数据库 07-11
·SQL Server 2005对海量数据处理 07-10
·打造SQL Server2000的安全策略 07-10
·SQL Server怪辟:异常与孤立事务 07-10
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




