我是SQL Server数据库的新手,我很难解决某个特定视图上的用户的访问问题。我不想暴露我的任何一个基表。
场景是:我有3个数据库,DB 1、2和3。
三号数据库是我们的数据仓库。所以,我想知道,如果我只对数据库三的视图授予select权限,这就足够了吗?
问题是我不想在数据库一号中公开我的任何基表
如果我授予user1对datawarehouse视图(在数据库3中查看)的select权限,并拒绝对基表(在数据库1中)的所有权限,那么有可能吗?
谢谢
发布于 2017-12-15 04:18:25
所有权链接允许通过视图访问数据,而无需对基础表拥有权限,只要所有对象都属于同一安全主体。对于具有完整所有权链的间接使用对象,不需要显式授予或拒绝,因为权限仅在直接访问视图上进行检查。对象所有者通常是从架构所有者继承的。
要允许所有权链接扩展到多个数据库,请执行以下操作:
DB_CHAINING数据库选项。只有当您完全信任高特权用户(那些拥有创建数据库对象的权限的用户)时,才应该启用DB_CHAINING。
https://stackoverflow.com/questions/47823853
复制相似问题