2

我想模拟我使用MySQL开发的webapp上的行级安全性。Webapp:Mysql:行级安全性。 PRO /利弊?更好的方法来做到这一点?

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

根据用户标识为特定用户创建mysql'视图'。

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

对于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.

+3

而不是嘲笑我,你能建议我能做什么/读吗? – ThinkingMonkey

+0

这不是在嘲笑你,但我很抱歉,如果它看起来像那样。我只是想知道为什么你甚至试图这样做。为什么你甚至需要“行级安全性”,这样做的理由是什么,以及通过这样做有什么预防?至于磁盘I/O,创建用户,视图等并不会影响磁盘I/O,因此您不必担心这一点(除非每天都有成千上万的新用户,这会累加到磁盘I上/ O处理视图时)。 –

+0

我需要'行级安全性',因为有多行将被多个用户共享,并有1或2个所有者。只有这些所有者才能删除/修改它们。 ***如果你知道我可以在哪里了解更好的方法,那么建议他们。*** – ThinkingMonkey

回答

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?

不知道如何正确地回答这个问题,因为你可能读过这篇文章是关于开发者/数据库管理员在/ etc谁directly访问数据库..

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

与SQL函数和争夺使用多个SQL帐户ws在你的MySQL实现中,也许你可以试着控制访问,而不是从SQL帐户级别访问,而是通过表数据访问用户?

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

一两件事,是具有多个帐户的后果是账户的维护。

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

再一次,这些只是我的意见;我可能误解了一些部分,并且我可能与其他人错误。:)

+0

感谢您的回复: 不知道如何正确回答这个问题,因为您可能已经阅读的文章是关于开发人员/数据库管理员/等人直接访问您的数据库使用的多个SQL帐户。 感谢您指出此出.. 该文章是为了使用触发器和自动日志记录。 ThinkingMonkey

+0

[链接](http://dba.stackexchange.com/a/3348)使用触发器时磁盘I/O会增加。 你的第一和第三点是我最初的实施想法。 有没有我可以参考的参考资料? P.S.我意外地敲入输入而不是先前输入 – ThinkingMonkey

0

问题3的答案:

一个简单的方法可能是使用单独的表。在性能方面也可能更好。为什么要将数据保存在同一个表中是否有原因?据我了解,用户之间不共享行。

+0

行将在用户之间共享。这就是我查看行级安全性的原因。我应该早些提到这一点。 而且.. 更多表格, 1]更多我的数据库表的大小。 2]更多I/O。 3]我的数据库转储的大小越大。 – ThinkingMonkey

相关问题