Sql server 2008 r2 SQL Server 2008 R2不支持创建没有关联登录名的用户
在SQL Server 2000版本的SQL Server上,使用SQL Server Management Studio 2008 R2(Sql server 2008 r2 SQL Server 2008 R2不支持创建没有关联登录名的用户,sql-server-2008-r2,ssms,sql-server-2008,Sql Server 2008 R2,Ssms,Sql Server 2008,在SQL Server 2000版本的SQL Server上,使用SQL Server Management Studio 2008 R2(10.50.1617.0)编写SQL Server 2000数据库脚本时,出现以下错误: SQL Server 2008 R2不支持创建没有关联登录名的用户 使用完整堆栈跟踪: Microsoft.SqlServer.Management.Smo.SmoException: Creating a user without an associated logi
10.50.1617.0
)编写SQL Server 2000数据库脚本时,出现以下错误:
SQL Server 2008 R2不支持创建没有关联登录名的用户
使用完整堆栈跟踪:
Microsoft.SqlServer.Management.Smo.SmoException: Creating a user without an associated login is not supported in SQL Server 2008 R2.;
at Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker_DoWork(Object sender, DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
解决这个问题的好办法是什么
我考虑过:
- 创建一个登录名(并在上面引起愤怒)
- 删除用户(并招致高层的愤怒)
- 选择要编写脚本的部分对象,而不是所有对象,并且不要为冒犯SQL Server 2008 R2的用户编写脚本
在SQL Server 2000框上运行sp_helpuser,查看输出并按照说明将其删除。只是不要为没有关联登录名的数据库用户编写脚本。您可以在任务>生成脚本向导(将2008或更高版本的SSM指向2000实例)中执行此操作,方法是选择特定的数据库对象并取消选中任何有问题的用户:
按照说明。只是不要为没有关联登录名的数据库用户编写脚本。您可以在任务>生成脚本向导(将2008或更高版本的SSM指向2000实例)中执行此操作,方法是选择特定的数据库对象并取消选中任何有问题的用户:
脚本的一部分不应该包括支持数据库所需的服务器级对象吗?这包括链接的服务器、登录、作业、sys.messages中的条目……我认为这里的困惑,以及gbn的回答,是没有与用户关联的登录。错误是正确的。我可以创建一个登录名,然后运行
sp\u change\u users\u login
。或者我不能那样做,因为那样做会引来高层的愤怒。我不知道你说的“引来高层的愤怒”是什么意思——你已经说过三次了,但我不明白问题所在。如果您不想在SQL Server 2008 R2中创建不兼容的用户,那么您就必须不创建这些用户。@Aaron Bertrand:创建一个回答,大意是“当您为数据库编写脚本时,而不是为所有对象编写脚本时,为除导致失败的用户名之外的所有对象编写脚本。”添加一个示例屏幕截图,您就有了一个可接受的答案。我在上面创建了这个问题,因为没有提到错误在SQL Server 2008 R2中不支持在internet上的任何位置创建没有关联登录名的用户。堆栈溢出是一个有人在谷歌上搜索这个问题会找到解决方法的地方——我让你来创建这个答案。至于从最高层引起愤怒的地方:数据库中有一个用户在服务器上没有相关的登录名。我的心理调试技能告诉我,数据库已还原或连接到新服务器,但从未创建与数据库中所有用户匹配的登录名。我可以在服务器上创建一个登录名,但这是一个安全问题。类似的事情需要咨询政府审计员,同时还要咨询电子邮件和会议。如果备选方案是“不要抄写该用户”,那么这是一个更好的解决方案。脚本的一部分不应该包括支持数据库所需的服务器级对象吗?这包括链接的服务器、登录、作业、sys.messages中的条目……我认为这里的困惑,以及gbn的回答,是没有与用户关联的登录。错误是正确的。我可以创建一个登录名,然后运行sp\u change\u users\u login
。或者我不能那样做,因为那样做会引来高层的愤怒。我不知道你说的“引来高层的愤怒”是什么意思——你已经说过三次了,但我不明白问题所在。如果您不想在SQL Server 2008 R2中创建不兼容的用户,那么您就必须不创建这些用户。@Aaron Bertrand:创建一个回答,大意是“当您为数据库编写脚本时,而不是为所有对象编写脚本时,为除导致失败的用户名之外的所有对象编写脚本。”添加一个示例屏幕截图,您就有了一个可接受的答案。我在上面创建了这个问题,因为没有提到错误在SQL Server 2008 R2中不支持在internet上的任何位置创建没有关联登录名的用户。堆栈溢出是一个有人在谷歌上搜索这个问题会找到解决方法的地方——我让你来创建这个答案。至于从最高层引起愤怒的地方:数据库中有一个用户在服务器上没有相关的登录名。我的心理调试技能告诉我,数据库已还原或连接到新服务器,但从未创建与数据库中所有用户匹配的登录名。我可以在服务器上创建一个登录名,但这是一个安全问题。类似的事情需要咨询政府审计员,同时还要咨询电子邮件和会议。当备选方案只是“不要给那个用户代币”时