2

我正在尝试在使用 MySQL 开发的 webapp 上模拟行级安全性。

使用此方法:使用所需的表创建一个数据库,其中将存储与所有用户有关的数据,并对表的列进行适当的索引。

根据用户 ID 为特定用户创建 mysql“视图”。

为了实现行级安全性,我还必须为每个用户创建 mysql 帐户并设置视图的“授予”权限。

对于 Web 界面,将使用基于 PHP 的 MVC 框架。

但是,根据我的研究:

1] Having separate mysql account per user "make the webapp less secure".
2]Having separate mysql account per user "increases the disk I/O".

问题:
1] How does creating mysql user per webapp user make the webapp less secure?
2] Does the disk I/O increase considerably?
3] Is there a better way to implement row-level-security in MySQL?
4]What are the pros/cons of implementing row-level-security by the above method?

为什么我要查看行级安全性?
I need row level security because there are rows which will be shared between multiple users & have 1 or 2 owners to it. Only these owners can delete/modify them.

4

2 回答 2

0

我的意见:

1] How does creating mysql user per webapp user make the webapp less secure?

您的数据库有多个入口点。它不同于拥有一个users存储用户信息的表,然后使用他们都使用的适当限制的 mysql 帐户(作为 Web 应用程序配置文件的一部分)

2] Does the disk I/O increase considerably?

不知道如何正确回答这个问题,因为您可能读过的文章是关于directly访问您的数据库的开发人员/数据库管理员/等使用的多个 sql 帐户。

3] Is there a better way to implement row-level-security in MySQL?

在您的 MySQL 实现中同时使用 SQL 函数和视图,也许您可​​以尝试控制访问,而不是从 SQL 帐户级别,而是通过表数据控制用户访问?

4] What are the pros/cons of implementing row-level-security by the above method?

拥有多个帐户的结果之一是帐户的维护。

使用视图和函数以及存储过程将是帮助控制您允许访问者看到的数据量或数据类型的一种好方法,所以这是一个专业人士。

同样,这些只是我的意见;我可能误解了一些部分,我可能对其他部分有误。:)

于 2011-11-28T14:34:37.850 回答
0

问题3的答案:

一个更简单的方法可能是使用单独的表。在性能方面也可能更好。您是否有理由将数据保存在同一个表中?据我了解,用户之间不共享任何行。

于 2011-11-28T20:42:17.067 回答