用户在MySQL中具有SELECT权限的表的列表
作者:互联网
简短版本:如何编写SQL过程来列出特定用户可以访问MySQL数据库中的几个表中的哪一个?
更长的版本:
我正在编写一个多用户应用程序,它使用公司的几个分支机构的数据访问数据库.数据库具有许多任何用户都可以访问的查找表,以及只有授权用户才能访问的每个分支的表.我的策略是:
>编写存储过程,返回用户具有SELECT权限的相关表的列表.
>从应用程序中调用该过程.如果只返回一个表,则使用它,否则让用户选择他们想要访问的分支(例如,对于管理员).
我无法弄清楚如何编写这样的存储过程.显示CURRENT_USER的资产显然是可能的,但解析类似于:
GRANT SELECT ON Company.BranchABC TO 'auser'@'%clientdomain.com'
在SQL中弄清楚表格看起来太乱了.从拥有权限的实际表中执行SELECT也似乎有问题,因为我必须复制MySQL的逻辑来组合各种表(用户,数据库,主机等)的权限.
任何智慧的话?
解决方法:
我之前从未向MySQL用户授予每个表权限,但为此,您将检查information_schema数据库中的TABLE_PRIVILEGES表.
这应该指向正确的方向.
标签:mysql,database-permissions 来源: https://codeday.me/bug/20190521/1149132.html