Sco*_*ter 7 mysql database-permissions
简短版本:如何编写SQL过程来列出特定用户可以访问MySQL数据库中的几个表中的哪一个?
更长的版本:
我正在编写一个多用户应用程序,它使用公司的几个分支机构的数据访问数据库.数据库具有许多任何用户都可以访问的查找表,以及只有授权用户才能访问的每个分支的表.我的策略是:
我无法弄清楚如何编写这样的存储过程.SHOW GRANTS FOR CURRENT_USER是一个明显的可能性,但解析如下:
GRANT SELECT ON Company.BranchABC TO 'auser'@'%clientdomain.com'
Run Code Online (Sandbox Code Playgroud)
在SQL弄清楚表是什么,似乎这样太乱了.SELECT从拥有权限的实际表中执行a 操作似乎也有问题,因为我必须复制MySQL的逻辑以组合来自各种表(用户,数据库,主机等)的权限.
任何智慧的话?
您可以查看用户对哪些表具有哪些权限:
show grants for 'user'@'host';
Run Code Online (Sandbox Code Playgroud)
例如,要查看 user1(网络 10.25 中的所有机器)的权限,请运行:
show grants for 'user'@'10.25.%.%';
Run Code Online (Sandbox Code Playgroud)
我以前从未向 MySQL 用户授予过每个表的权限,但要做到这一点,您需要检查数据库TABLE_PRIVILEGES中的表information_schema。
这应该为您指明正确的方向。
| 归档时间: |
|
| 查看次数: |
20679 次 |
| 最近记录: |