如果我有一个名为example的表。我将诸如SELECT,INSERT等权限授予subject1,subject2,subject3。那么我怎么能作为表的所有者,查看我给出的每个人和他们的特权?
答案 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
请注意,您需要的信息越多,扩展此查询所需的信息就越多。