【发布时间】:2015-10-06 21:15:52
【问题描述】:
我们有一个为众多客户保存数据的数据库。我们想让客户访问数据库,但只能访问属于他们的数据。解析选择然后插入 where 子句“and Company.Name = 'Acme'” 让我觉得很弱,因为 SQL 选择可能非常复杂,并且处理 100% 的所有情况可能很困难。
有什么方法可以做相当于(我知道这不是有效的 SQL):
select * from * where Company.Name = 'Acme' and (passed_in_select)
您可以将完整选择嵌套在大选择的内部。有没有办法做到以上几点?这种方式是对选择的一个非常简单的限制,并且可能 100% 的时间都有效。
【问题讨论】:
-
您是真的希望客户访问您的数据库服务器,还是希望他们通过网站或应用程序访问数据?
-
什么数据库系统?
-
@zedfoxus 它将始终通过我们的报告系统,因此通过可以在传入选择时更改选择的应用程序。
-
@PavelGatnar - 任何 SQL 数据库。
-
在我的帖子中添加了 WITH 子句解决方案