将某些用户仅限制为公共表中的数据

时间:2011-06-08 19:17:04

标签: mysql

我正在构建一个由许多公司使用的webapp,我想让他们访问原始的MySQL数据库 - 但显然他们只能访问自己的数据。和只读访问 - 仅用于备份和分析。

如果所有表都有company_id列,并且我们为每个公司创建一个MySQL用户帐户,那么您将如何进行此操作?是否可以允许某人运行任意查询,但对特定列值设置顶级限制?

如果没有,关于如何做到这一点的任何其他想法?我能想到的另一种方法是为每家公司创建一个单独的数据库......但不确定我不会这样做。

2 个答案:

答案 0 :(得分:2)

我不确定,但我认为你可以使用Views实现这一目标。

http://dev.mysql.com/doc/refman/5.0/en/create-view.html

来自维基百科:视图可以限制一个或多个表暴露于外部世界的程度

http://en.wikipedia.org/wiki/View_%28database%29

答案 1 :(得分:0)

归功于Frank Schmitt这个答案,但他似乎不想写一个,所以我可以接受它:(

  

在视图中,您可以使用user()函数进行过滤   数据(这样,每个数据库表只需要一个视图,而不是   每个数据库表和客户一个视图。