【问题标题】:MySQL: can I implement row-level AND column level security?MySQL:我可以实现行级和列级安全性吗?
【发布时间】:2015-11-02 17:46:46
【问题描述】:

假设我有一张这样的桌子:

itemID | PriceA | PriceB | PriceC | other columns...
1      | 8.0    | 6.95   | 0.5    | ...
2      | 5.9    | 6.97   | 4.1    | ...
3      | 0.2    | 1.12   | 3.5    | ...

我希望用户登录,但只能看到某些行和一个价格列。例如,用户 Susie 只能看到第 1 行和第 2 行,并且只能看到这些商品的价格 B。用户 Hanna 可以看到价格 A 的第 2 行和第 3 行。

也许它不需要是数据库级别的安全性。基本上,用户将在网站(Wordpress)上登录,并在登录后以特定价格看到某些产品。

同样,多个用户可以访问任何给定的行或列。这不是一对一的关系。我认为这与典型的行级 mysql 安全性不同。

我有两个问题:

  1. 这应该是数据库级别的安全性还是其他的? PHP代码?

  2. 关于如何实现此功能的任何建议?

【问题讨论】:

  • php 级别。如果您想要数据库内的安全性,那么您的每个用户都必须拥有一个数据库级别的登录帐户,这简直是危险/愚蠢/愚蠢。
  • 如果用户数是20,还是不行吗?
  • 没有。您永远不会授予最终用户直接访问数据库的权限。
  • check Dialect 一个 SQL 构建框架,支持可编程(软)自定义视图(ps 我是作者)
  • mysql 无论如何都没有行级权限支持,所以你必须在你的应用程序中至少实现一些安全性,所以为什么不在那里实现所有东西,而不是在多个应用程序中涂抹东西系统?

标签: php mysql database wordpress


【解决方案1】:

实际上,我认为创建视图会解决我的问题。这看起来安全吗?

我发现了这个:How can I allow users sql access to a table limited to certain rows?

【讨论】:

  • 可能。但是您不能即时(或以编程方式)创建视图(实际上可以,但不推荐),这就是为什么我在上面发布了可编程自定义视图的评论(我在我的一些项目中使用正是出于这个原因)
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 2017-04-23
  • 2021-02-04
  • 1970-01-01
  • 2018-06-15
相关资源
最近更新 更多