首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解有数据库链接时的访问

理解有数据库链接时的访问
EN

Stack Overflow用户
提问于 2017-12-14 23:48:54
回答 1查看 108关注 0票数 0

我是SQL Server数据库的新手,我很难解决某个特定视图上的用户的访问问题。我不想暴露我的任何一个基表。

场景是:我有3个数据库,DB 1、2和3。

  • 数据库一有两个基表。
  • 数据库2在这些表的顶部有一个视图(数据库1中的表)
  • 数据库3有一个视图,该视图位于数据库2的视图之上。

三号数据库是我们的数据仓库。所以,我想知道,如果我只对数据库三的视图授予select权限,这就足够了吗?

问题是我不想在数据库一号中公开我的任何基表

如果我授予user1对datawarehouse视图(在数据库3中查看)的select权限,并拒绝对基表(在数据库1中)的所有权限,那么有可能吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-15 04:18:25

所有权链接允许通过视图访问数据,而无需对基础表拥有权限,只要所有对象都属于同一安全主体。对于具有完整所有权链的间接使用对象,不需要显式授予或拒绝,因为权限仅在直接访问视图上进行检查。对象所有者通常是从架构所有者继承的。

要允许所有权链接扩展到多个数据库,请执行以下操作:

  • 对于涉及的数据库,必须打开DB_CHAINING数据库选项。
  • 用户必须能够使用数据库(在每个数据库中都有一个具有连接权限的用户帐户),尽管只需要对直接访问的对象使用权限。
  • 对于dbo拥有的对象,数据库必须由相同的登录(授权)拥有,因为dbo模式所有者是数据库所有者。对于其他架构,架构所有者必须映射到同一个登录名。

只有当您完全信任高特权用户(那些拥有创建数据库对象的权限的用户)时,才应该启用DB_CHAINING

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47823853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档