【发布时间】:2011-07-05 06:50:59
【问题描述】:
我有几个存储过程(worker procs),它们将被一个名为Calc 的主存储过程查询。 Calc 为表创建一个名为S 的同义词,其名称由参数传递。
worker procs 使用同义词表。
适用于管理员登录。
问题:如果用户执行Calc,同义词将是Domain/Username.S,访问S的工作人员找不到Domain/username.S
如果管理员创建了同义词,则称为dbo.S,并且工作人员仅通过访问S 来工作。
worker 存储过程如何访问由名为Calc 的用户创建的同义词?
这样 X 用户可以调用 Calc 并在不同的表上操作 S 但使用相同的工作进程。
提前谢谢你,希望有人可以帮助我。
环境:SQL Server 2008 授予用户权限:创建同义词
【问题讨论】:
-
我用一个不漂亮的 WORKAROUND 解决了这个问题。同义词表被删除,Calc 现在得到一个表名作为参数,该参数传递给工作进程。这些现在将使用动态 SQL 处理传递的表。它现在和同义词一样好,但它有效。
标签: database sql-server-2008 stored-procedures synonym