用户权限完全来自应用程序,但只能从MySQL中选择和查看

h4cxqtbf  于 2023-03-11  发布在  Mysql
关注(0)|答案(1)|浏览(79)

我正在创建一个特殊的用户,我必须在应用程序执行中给予完全权限,但只有当我使用Workbrench或使用MySQL的控制台时才能选择和查看。
有可能吗?这是出于安全考虑。
我问这个问题是因为程序员可以在C#web.config中看到用户,我们对他们在控制台中直接查询插入和更新不感兴趣。

xdnvmnnf

xdnvmnnf1#

一个给定的用户只能有一组权限。不管他们连接时使用什么程序。您不能根据客户端程序使用户具有不同的权限。
但是您可以根据客户端 * 主机 * 授予不同的权限。
MySQL中的“用户”是用户名和连接的客户端主机的组合。即使用户名和密码相同,如果客户端从应用服务器主机连接,它可以匹配具有完全权限的user@host条目,然后如果客户端从任何其他主机连接(例如开发人员工作站或跳转主机),只授予您想要的有限权限。
您可以创建两个用户,假设您的应用服务器主机都在子网192.168.200.%中:

CREATE USER 'app'@'192.168.200.%' IDENTIFIED BY '...';

CREATE USER 'app'@'%' IDENTIFIED BY '...';

然后相应地授予权限:

CREATE SELECT, INSERT, UPDATE, DELETE ON appdb.* TO  'app'@'192.168.200.%';

GRANT SELECT ON appdb.* TO 'app'@'%';

当MySQL身份验证系统识别登录时,它首先将其与最具体的主机模式进行匹配。
这里假设开发者没有ssh访问应用服务器主机的权限,但是即使他们有,你也可以设置监控,这样如果他们登录到应用服务器主机并运行mysql命令行客户端,你就会有一个日志。

相关问题