【问题标题】:SQLServer Access restrictions between databasesSQLServer 数据库之间的访问限制
【发布时间】:2012-05-18 05:57:49
【问题描述】:

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

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

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

【问题讨论】:

  • 有什么原因不能简单地将用户添加到“DB2”并且只授予select 权限?

标签: sql sql-server


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2010-09-14
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多