【发布时间】:2012-06-12 18:39:51
【问题描述】:
问题...是否可以添加 MySQL 权限以仅允许根据权限选择字段?
例子:
- 用户
user1只能从users表中选择/插入/删除,其中instance列等于1(1 通过PHP 传递)。 - 用户
user2只能从users表中选择/插入/删除,其中instance列等于2(1 通过PHP 传递)。
这是背景信息:
我正在使用用于多个站点的相同代码库创建一个应用程序。应用内的条件会加载不同的布局。多个站点使用相同的数据库,因为大多数信息可以在站点之间共享。在一个站点上注册的用户还必须在另一个站点上注册(这是我们想要的,因为这些站点是“仅限受邀者”)
我想做的是让用户表:id、电子邮件、密码、实例。实例列将具有站点的 ID。
在应用层上,每次我需要从该表中选择/插入/删除时,我都会将 instance = [site_id] 附加到查询中...例如:SELECT * FROM users WHERE email = '' AND instance = [site_id];
【问题讨论】:
-
由于应用程序端负责将 instance = x 添加到查询中,因此 MySQL 只是一个额外的安全措施,以防查询意外没有 instance = x。
-
只是测试你的代码,编码中没有“意外”之类的东西
-
感谢您的所有回答和冗长的讨论。我会考虑解决方案并给予适当的奖励。 @pyrate 我同意没有意外代码。对于多个开发人员,从长远来看,有时很难跟踪这类事情。提出这个问题的另一个原因是向与我们打交道的公司保证,在站点之间访问用户信息存在技术安全边界/限制。再次感谢!
标签: php mysql cakephp permissions