1

我在 DB1 中创建了一个视图来从 DB2 的表中选择数据。说“将视图 DB1.A 创建为从 DB2.B 中选择 *”。

仅有权访问 DB1 的用户“usr1”现在无法从此视图中选择数据。收到以下错误:服务器主体“usr1”无法在当前安全上下文下访问数据库“DB2”。

我知道这种情况可以通过在 Teradata 中使用“With Grant”选项授予 DB1 对 DB2 的只读访问权限来处理。SQL Server 中是否有类似的选项?

4

2 回答 2

0

据我记得,默认情况下唯一有效的情况是如果您满足两个条件...
1. 视图的所有者也是基础表的所有者
2. 您有“跨数据库所有权链接” "激活

如果您不符合上述任一条件,则需要配置查询视图的用户/登录名的安全设置,而不仅仅是视图的所有者。

视图和内联表值函数都不允许使用EXECUTE AS OWNER或类似选项。

于 2012-05-17T21:57:49.330 回答
0

1) 使用以下链接将您的用户名映射到 DB2 数据库herethis

于 2012-05-17T21:48:45.910 回答