我有几个存储过程(worker procs),它们将被一个名为Calc
的主存储过程查询。 Calc
创建一个名为S
的表的同义词,该名称由参数传递。
工作人员使用同义词表来处理工作。
适用于管理员登录。
问题:如果用户执行Calc
,则同义词将为Domain/Username.S
,访问S
的工作人员找不到Domain/username.S
< / p>
如果管理员创建了同义词,则称其为dbo.S
,工作人员只能访问S
。
工作者存储过程如何访问由调用Calc
的用户创建的同义词?
这样X用户可以调用Calc
并对不同的表S
进行操作,但使用相同的工作程序。
提前感谢您,希望有人可以帮助我。
环境:SQL Server 2008 授予用户权利:创建同义词
答案 0 :(得分:1)
在创建calc,执行calc,创建S和调用S时使用模式前缀。或者确保所有用户都可以访问相同的默认模式。但我更喜欢前者。