0

这可能是一个简单的问题,但我在关系数据库方面的经验非常有限。如何微调 MySQL 中的权限。例如,如果我有以下代码

CREATE TABLE IF NOT EXISTS user(
ID INT NOT NULL AUTO_INCREMENT,

//...other columns

PRIMARY KEY(ID)
)ENGINE=InnoDB



CREATE TABLE IF NOT EXISTS pictures
(
ID INT NOT NULL AUTO_INCREMENT,
userID INT NOT NULL,

//...other columns

PRIMARY KEY(ID),
FOREIGN KEY (userID) REFERENCES user(ID)
)ENGINE=InnoDB";

我创建了两个新用户,user1并且user2,我可以授予他们对表的权限

GRANT ALL PRIVILIGES ON db_name.* to ".user1."@\"%\" identified by ".pass1
GRANT ALL PRIVILIGES ON db_name.* to ".user2."@\"%\" identified by ".pass2

但是是否有任何地方可以将表内的权限限制为仅特定子集?我应该在我的 PHP 代码中执行此操作吗?我习惯了面向对象的编程,所以我不习惯保存所有信息的海量表。

4

3 回答 3

1

我建议您在 PHP 中为您的应用程序的最终用户授予许可。使用数据库用户来控制访问是一种过时的方法(在我看来),并且在 MySQL/PHP 中很难做到/支持,因为它并不常见。

于 2011-03-24T03:03:16.850 回答
1

具体来说,您不能授予对表的某些行而不是其他行的访问权限,这听起来像是您要求做的。

于 2011-03-24T03:08:13.743 回答
0

授予文档中,您需要查看文档以查看您正在寻找的特定权限;但是您需要为每个单独的权限为同一用户执行多个授权(即一个用于选择,一个用于更新,等等......)。

于 2011-03-24T03:00:37.550 回答