mysql 授权表tables_priv

本文介绍了MySQL中的tables_priv表,详细解释了其各个字段的意义,并通过多个示例展示了如何使用GRANT和REVOKE命令来管理数据库表及字段级别的权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下列是一个tables_priv表的示意图:

深入学习MySQL授权表

  下面简要介绍各字段的含义:

  • Host——适用于那些主机?
  • Db——适用于从上面的主机所连接的哪些数据库?
  • User——适用于来自上述主机的哪些用户?
  • Table_name——适用于上述数据库中的哪些表?
  • Table_priv——为这个表赋予哪些权限?
  • Column_priv——为这个表中的个字段赋予哪些权限?
  • Timestamp——这个权限是何时赋予的?
  • Grantor——谁授与该用户的这个权限?

  要想真正弄懂tables_priv表,最好的办法就是通过实例进行学习,下面我们就给出一些例子。

  例1:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

%>GRANT SELECT ON italy TO wj@314interactive.com;

  这条命令的作用是什么?以上命令允许来自主机314interactive.com的用户wj在表italy上至下一个SELECT语句。请记住,只有当给定数据库/主机和用户名对应的db或者host表中的SELECT字段的值为N时,才需要访问这个表。如果给定数据库/主机和用户名对应的db或者host表中的SELECT字段中有一个值为Y的话,那么就无需控制该tables_priv表。

  例2:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

%>GRANT SELECTINSERT ON oats.italy TO wj@314interactive.com;

  这条命令的作用是什么?以上命令允许来自主机314interactive.com的用户wj对数据库oats中的数据表italy执行SELECT和INSERT语句。

  例3:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

%>REVOKE SELECT on oats.italy from wj@314interactive.com

  这条命令的作用是什么?以上命令撤消来自主机314interactive.com的用户wj对数据库oats中的表italy的执行SELECT的权限。

  重要的是要认识到,包含在tables_priv中的信息仅当host/db表不允许用户执行要求的功能所需的权限时才生效。如果给定的权限在host/db表中为Y,那么就无需考察tables_priv表。

  例4:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

%>GRANT SELECT(id,name,address,phone),update(address,phone) ON
company.customers 
TO gilmore@314interactive.com;

  这条命令的作用是什么?以上命令将授予对company数据库中customers表内id、name、address和phone字段执行SELECT的权限,以及对address和phone字段执行UPDATE的权限。

  这将带来哪些影响?这条命令会修改tables_priv表和columns_priv表,这是因为它引用这两个表和表内特定的字段。

  例5:



Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

%>REVOKE UPDATE(address,phone) ON company.customers FROMgilmore@314interactive.com;

  这条命令的作用是什么?这个命令将撤消对company数据库中customers表内的address和phone字段执行UPDATE操作的权限。

  这将带来哪些影响?因为该命令直接涉及给定表中的某些字段,所以columns_priv表以及tables_priv表也会更新。

  前面说过,只有在必须的情况下才会使用授权表,举例来说,如果高优先级的表提供了适当的权限的话,那么就无需查阅优先级较低的授权表了。如果高优先级的表中对应命令的值为N,那么就需要进一步查看低优先级的授权表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值