如何查看所有这些用户及其整个表格的“Grants”?

时间:2014-04-11 17:40:59

标签: mysql sql privileges grant

如果我有一个名为example的表。我将诸如SELECT,INSERT等权限授予subject1,subject2,subject3。那么我怎么能作为表的所有者,查看我给出的每个人和他们的特权?

2 个答案:

答案 0 :(得分:1)

您可以对tables_priv数据库中的mysql表运行查询:

SELECT p.User
     , p.Host
     , p.Table_priv
     , p.Grantor
  FROM mysql.tables_priv p
 WHERE p.Db         = 'mydatabase'
   AND p.Table_name = 'example'
 ORDER by 1,2,3

如果在整个数据库上授予了特权,那么这并不是每个拥有该表特权的人,例如

GRANT SELECT ON mydatabase.* TO subject1@'%'  

这些权限将位于db数据库的mysql表中。在所有数据库上授予用户的全局特权将位于user表中。

答案 1 :(得分:0)

用户和权限的MySql架构非常复杂,具体取决于您希望获得的深度。

您可以在users表中找到所有用户(授予您权限)。您可以从这两列中找到表/列权限:tables_priv and columns_priv

所以你会想要这样的东西:

select * from users
join tables_priv on users.user = tables_priv.user

请注意,您需要的信息越多,扩展此查询所需的信息就越多。