sqlserver新建登录名指定视图权限

需求

sqlserver新建一个的登录名只能看到一个视图,应该如何做?
视图是跨库的,描述如下

服务器环境

现有sqlserver服务器中两个数据库DB1,DB2
DB1中的视图v_task 读取了两个数据库的内容,像这样

create view v_task as 
select a.* from DB1.dbo.table1 a, DB2.dbo.table2 b
where a.id=b.id
实现

新登录名 user_demo只有v_task视图的select权限

新建登录名 user_demo,并在用户映射里添加 DB1的用户db1_user,并为db1_user分配v_task的select权限

问题

select * from DB1.dbo.v_task报错如下
服务器主体 "user_demo" 无法在当前安全上下文下访问数据库 "DB2"。
必须 分配DB2.dbo.table2的读权限,我不希望此登录名查看DB2.dbo.table2的内容。

阅读 2.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题