这是一个有点开放式的问题,所以任何填补我知识空白的信息都会受到赞赏。
从2000到2008进行SQL Server升级时,升级顾问程序可以发出以下警告: Upgrade Advisor检测到一个或多个与固定服务器角色名称匹配的用户定义登录名。 SQL Server 2008中保留了固定服务器角色名称。在升级到SQL Server 2008之前重命名登录。
我相信这是因为例如在sql server 2000数据库中登录'sysadmin'将在2008年与'sysadmin'的固定服务器角色冲突。
有没有办法安全地删除并重新创建这些登录信息,或者是否可以删除“sa”的登录信息会产生意想不到的后果?
答案 0 :(得分:0)
Repro of issue:
1)删除内置/管理员帐户。 2)尝试通过sqlcmd或Management studio连接到SQL Server。您将收到错误18456 Level 14 State 1。 3)假设我也忘记了SA密码。
解决方案: 1)使用管理员帐户登录服务器。
2)停止SQL Server服务并使用-m switch(单用户模式)启动它。
2)键入sqlcmd -E并按Enter键。如果是其命名实例,则sqlcmd -S -E并按Enter键。
4)你会看到>标志
5)您需要使用的命令
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE= [master], DEFAULT_LANGUAGE=[us_english]
go
6)为我们刚刚创建的登录提供sysadmin角色
EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Administrators', @rolename = N'sysadmin'
GO
7)你完成了。退出它.8)重新启动没有-m参数的SQL Server服务。
您已完成。再次登录到SQL Server并重置SA密码。保存下雨天的SA密码。