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

littlelove
  • 7
需求

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的内容。

评论
阅读 226
撰写回答

登录后参与交流、获取后续更新提醒

宣传栏