小编Tim*_*Tim的帖子

跨同一数据库内的多个架构选择权限

客户要求我实施一些用于报告目的的视图,这些视图将通过 PowerBI、Excel 和 SSRS 访问。指定的用户将只能访问该视图,并且该用户必须不能使用任何基础表。

我遇到的问题是视图中的 SQL 涉及 3 个不同的模式(都在同一个数据库中):

  • 瞳孔
  • 提供者
  • 安全

观点是:

CREATE VIEW dbo.vTestPermissions
AS
SELECT a.Column1,
       b.Column1,
       c.Column1
FROM Pupil.Table1 a
JOIN Provider.Table2 b ON a.Column1 = b.Column1
JOIN Security.Table3 c ON a.Column1 = c.Column1
Run Code Online (Sandbox Code Playgroud)

表/视图的所有者如下:

  • 瞳孔.Table1 - 所有者瞳孔
  • Provider.Table2 - 所有者提供者
  • Security.Table3 - 所有者安全
  • vTestPermissions - 所有者 dbo

当我从视图中选择时,出现错误:

对象“table3”、数据库“TEST”、架构“Security”的 SELECT 权限被拒绝

我曾尝试在SELECT有和没有GRANT模式和表选项的情况下授予权限,但这使用户可以使用基础表。

对此的任何帮助将不胜感激。

sql-server permissions sql-server-2008-r2 view owner

5
推荐指数
1
解决办法
1181
查看次数