6

有一个包含以下内容的数据库

id | userid | name
1  |    1   | John
2  |    1   | John
3  |    2   | Joe
4  |    2   | Joe
5  |    2   | Joe
6  |    3   | Sue
7  |    3   | Sue

我需要一种方法来创建数据库,然后创建用户。我在 mysql 中创建的每个用户都限制他们访问其用户 ID 的数据。数据库中的每个数据库表都有 userid 值。

所以无论他们是在阅读、更新、插入还是删除。如果它通过我附加到该数据库的特定 mysql 用户,我希望该用户只读取、更新、插入或删除他们的用户 ID 所在的位置。

我已经阅读了一些关于 mysql 触发器的东西,但没有找到任何对我有用的东西。

我们有一个后端,其中包含数据并受用户 ID 限制。

该网站从基于 userid so 的表中提取数据select * from articles where userid=1。现在,该代码可由用户修改。我想要一种从文章中选择 * 的方法,并且 mysql 只结果userid=1该 mysql 用户的行。目标是让每个用户都有自己的 mysql 用户登录到 mysql 数据库,这将限制为他们的用户 ID 的特定值。

有什么想法吗?非常感谢!

4

2 回答 2

3

GoogleResult[0]有这个:

http://www.sqlmaestro.com/resources/all/row_level_security_mysql/

抽象的

本文包含使用诸如视图和触发器等 MySQL 功能在 MySQL 5.0 及更高版本中实现行级安全性的分步指南。

于 2013-02-27T05:47:33.283 回答
1

出色地!我会建议为此做一张桌子。对于整个应用程序

user_rights

id  |   user_id |   insert  |   update | delete | read
1   |   2       |   0       |   0      |    0   |   1

注意:1 表示允许,0 表示不允许。

现在,在您执行任何操作之前,请先检查权限,然后执行其他操作。

详细方法包括部分应用:

screens

id  |   title
1   |   articles
2   |   blog

user_rights

id  |   user_id |   insert  |   update | delete | read  |   screen_id
1   |   2       |   1       |   0      |    0   |   1   |       1
2   |   2       |   0       |   0      |    0   |   1   |       2

在这种方法中,您可以允许屏幕级别的访问。用户 id 2 可以添加和查看文章,但他也可以查看博客。我可能在这里使用了不恰当的术语,但我希望你能明白。

于 2013-02-27T06:25:57.257 回答