0

一个有点开放式的问题,因此任何可以弥补我知识差距的信息都将不胜感激。

从 2000 年到 2008 年进行 SQL Server 升级时,升级顾问会发出以下警告:升级顾问检测到一个或多个与固定服务器角色名称匹配的用户定义登录名。SQL Server 2008 中保留了固定的服务器角色名称。在升级到 SQL Server 2008 之前重命名登录名。

我相信这是因为例如在 sql server 2000 数据库中登录“sysadmin”将与 2008 年的“sysadmin”固定服务器角色发生冲突。

有没有办法安全地删除并重新创建这些登录名,或者删除说“sa”的登录名会产生意想不到的后果?

4

1 回答 1

0

问题重现:

1)删除内置/管理员帐户。2)尝试通过sqlcmd或Management studio连接SQL Server。你会得到错误18456 Level 14 State 1。 3)假设我也忘记了SA密码。

解决方法: 1) 使用管理员帐号登录服务器。

2) 停止 SQL Server 服务并使用 -m 开关启动它(单用户模式)。

2) 键入 sqlcmd -E 并按回车键。如果它的命名实例则 sqlcmd -S -E 并按回车键。

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) 重新启动你的 SQL Server 服务而不使用 -m 参数。

你完成了。再次登录到 SQL Server 并重置 SA 密码。保存 SA 密码以备不时之需。

资源

于 2014-01-23T15:59:10.333 回答