SQL Server:由存储过程创建的每个用户的同义词问题

时间:2011-07-05 06:51:00

标签: database sql-server-2008 stored-procedures synonym

我有几个存储过程(worker procs),它们将被一个名为Calc的主存储过程查询。 Calc创建一个名为S的表的同义词,该名称由参数传递。

工作人员使用同义词表来处理工作。

适用于管理员登录。

问题:如果用户执行Calc,则同义词将为Domain/Username.S,访问S的工作人员找不到Domain/username.S < / p>

如果管理员创建了同义词,则称其为dbo.S,工作人员只能访问S

工作者存储过程如何访问由调用Calc的用户创建的同义词? 这样X用户可以调用Calc并对不同的表S进行操作,但使用相同的工作程序。

提前感谢您,希望有人可以帮助我。

环境:SQL Server 2008 授予用户权利:创建同义词

1 个答案:

答案 0 :(得分:1)

在创建calc,执行calc,创建S和调用S时使用模式前缀。或者确保所有用户都可以访问相同的默认模式。但我更喜欢前者。