我遇到了一个问题,我不知道在哪里找,也不知道如何解决。问题如下。我们有一个带有sql2000database的网站。从中恢复了一个备份,以创建一个开发环境。有些存储过程名为所有者.name (所有者不是dbo,我希望在活动环境和开发环境中保持相同的结构)。
当我试图在没有指定所有者名称的情况下运行这些存储过程时,我会得到一个“无法找到存储过程”错误。(使用所有者凭据)
但我创建了一个新用户,并创建了一个新的存储过程,其中新用户是所有者。然后与新用户登录。然后我可以找到商店程序的名称。
示例:
所有者= Daniel SPTest =存储过程(名称Daniel.SPTest)
以丹尼尔的身份登录,执行SPTest =未找到的存储过程--这里有什么问题吗?
在数据库所有者新用户SPTest2 =存储过程(命名为新User.SPTest2)中创建一个新的用户和存储过程,登录为new SPTest2 = runs过程
我尝试删除用户Daniel,然后用用户名Daniel创建一个新用户。但我还是收到了同样的错误。是否还有其他的表来定位这种映射?
发布于 2010-09-13 13:57:53
在服务器上创建用户“Daniel”(不仅用于数据库,而且用于服务器的安全对象),然后运行:
USE YOUR_SQL_2000DB
sp_change_users_login 'auto_fix', 'Daniel'问题(很可能)是,您的数据库没有将新的“Daniel”视为与旧的“Daniel”相同的用户。那个系统应该会修复的。
https://serverfault.com/questions/180558
复制相似问题