MySQL权限表,从PHP访问以在另一个数据库中使用?

Posted

技术标签:

【中文标题】MySQL权限表,从PHP访问以在另一个数据库中使用?【英文标题】:MySQL privileges table, access from PHP for use in another database? 【发布时间】:2014-03-14 04:07:57 【问题描述】:

我正在构建一个与名为“cc”的基于 mysql 的数据库相关联的 php 应用程序。为了在我的数据库上查找用户(或用户组)权限,应用程序是否需要连接到“mysql”数据库才能访问其用户和数据库表,或者我应该在我的数据库中复制这些表的结构,所以该应用只需要连接到它?

或者应用程序应该对所有应用程序用户的 SQL 使用单个 db-admin 用户,并通过代码严格控制他们的权限?这将避免需要为每个用户(或每种类型的用户)查找权限,但违反了将数据库访问权限保持在用户所需的最低限度的原则。

【问题讨论】:

我不明白你在问什么。也许你应该稍微解释一下你的设计。 【参考方案1】:

最常见的模式是您的应用程序使用 MySQL 用户连接到数据库,并且该用户具有足够的权限来执行所需的所有数据操作。

然后您的应用程序管理使用该应用程序的用户。这段代码可以自己写,也可以使用Symfony之类的框架

【讨论】:

我想我把事情弄得太复杂了。以下是我认为可行的方法——欢迎提供反馈。【参考方案2】:

我觉得我把事情弄得太复杂了。以下是我认为可能有用的方法——欢迎反馈。 1. App用户提交用户ID和密码。 (此应用是为内部员工设计的,因此只有应用管理员创建用户。) 2. 应用通过身份验证连接连接到数据库,只能访问用户表以确定用户的权限级别。 3. 应用程序以具有适当权限的预定义 DB 用户身份重新连接到 DB。这有意义吗?

【讨论】:

以上是关于MySQL权限表,从PHP访问以在另一个数据库中使用?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle - 授予非 dba 用户权限以在另一个用户对象上创建授权

如何从一个账户访问 s3 存储桶中的数据以在另一个账户中使用 redshift 处理数据?

PHP 生成 XML 文件以在另存为对话框中加载正确的文件类型

Linq to Entities 添加 Where 子句以在另一个表中查找 EXISTS

如何创建表在Mysql中使字段从某一个数开始自增

为独立的 Spring Boot 应用程序设置 MySQL 数据库以在另一个设备中使用