SQL SERVER 2005 与 Windows 7 问题

SQL SERVER 2005 与 Windows 7 问题

首先,我从其他服务器恢复了数据库,现在所有存储过程都命名为 [azamsharp].[usp_getlatestposts]。我认为 [azamsharp] 是有前缀的,因为它是原始服务器上的用户。

现在,在我的本地机器上它无法运行。我不希望所有存储过程都带有 [azamsharp] 前缀。

另外,当我右键单击 Sproc 时,我甚至看不到属性选项。我在 Windows 7 上运行 SQL SERVER 2005。

更新:

奇怪的是,如果我从我的机器访问生产数据库,我可以看到属性选项。所以,Windows 7 的安全性确实有问题。

更新2:

当我运行孤立用户存储过程时,它显示了两个用户“azamsharp”和“dbo1”。我修复了“azamsharp”用户,但“dbo1”没有得到修复。当我运行以下脚本时:

exec sp_change_users_login 'update_one', 'dbo1', 'dbo1' 我收到以下错误:

消息 15291,级别 16,状态 1,过程 sp_change_users_login,第 131 行终止此过程。登录名 'dbo1' 不存在或无效。

答案1

您可能有孤立用户。当您从计算机访问服务器时,您的域凭据可能可以作为 DBadmin 访问生产服务器。运行此代码以检测孤立用户:

Use TestDB
sp_change_users_login 'report'

输出列出了 TestDB 数据库的 sysusers 系统表中的条目与 master 数据库中的 sysxlogins 系统表中的条目不匹配的所有登录名。要修复该问题,请执行以下操作:

解决孤立用户

Use TestDB
sp_change_users_login 'update_one', 'test', 'test' 

SELECT sid FROM dbo.sysusers WHERE name = 'test'
0x40FF09E48FBD3354B7833706FD2C61E4

use master
SELECT sid FROM dbo.sysxlogins WHERE name = 'test'
0x40FF09E48FBD3354B7833706FD2C61E4

这将服务器登录“test”与 TestDB 数据库用户“test”重新链接。sp_change_users_login 存储过程还可以使用“auto_fix”参数对所有孤立用户执行更新,但不建议这样做,因为 SQL Server 会尝试按名称匹配登录和用户。在大多数情况下,这有效;但是,如果错误的登录与用户相关联,则用户可能具有不正确的权限。

相关内容