sa 帐户被锁定,即使启用了混合模式身份验证。当我选择“Windows 身份验证”时,用户名和密码字段显示为灰色。用户名字段包含我当前的 Windows 登录名,密码字段为空白。我使用 Windows 管理员帐户登录,但我没有明确将此帐户添加到 SQL 服务器 sysadmin 角色。
我也尝试过使用 SQL Server Management Studio 进行“以管理员身份运行”,但问题仍然存在
请注意,SQL Server 是使用另一个 Windows 管理员帐户安装的。这可能是原因吗?如果我使用安装 SQL Server 的帐户登录,它会起作用吗?
谢谢
答案1
故障排除:在系统管理员被锁定时连接到 SQL Server:
解决
-m
使用或选项以单用户模式启动 SQL Server 实例-f
。然后,计算机本地管理员组的任何成员都可以作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例。
要启动 SQL -m
(从以管理员身份运行的控制台):
net stop mssqlserver
cd "c:\program files\Microsoft SQL Server\...\MSSQL\binn"
sqlservr -c -m
或者,如果您有一个命名实例:
net stop mssql$<INSTANCENAME>
cd "c:\program files\Microsoft SQL Server\...\MSSQL\binn"
sqlservr -c -m -s <INSTANCENAME>
有替代方法,如下所示如何:配置服务器启动选项,但我总是喜欢从命令提示符启动,例如-m
:
- 使用 SSMS 打开
Run as Administrator
- 第一次出现提示时,不要单击“连接”,而是单击“取消”
- 打开一个新的查询窗口,然后使用该查询窗口连接到数据库
现在将自己添加到 SQL sysadmin 组
create login [domain\you] from windows;
exec sp_addsrvrolemember 'domain\you', 'sysadmin';
现在关闭 SQL Server 并正常重新启动它(重新启动服务)。domain\you
现在是服务器上的系统管理员,可以管理它。您不需要以管理员身份运行 SSMS。
答案2
您可以通过注册表设置 SQL Server 的混合模式(如果您仅激活了 SQL Server 身份验证):
默认实例:
"HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode"
用于2
混合模式或1
集成模式。
重新启动服务后,您应该能够以本地管理员身份登录并再次重新激活 SA 帐户。
另一个解决方案是使用工具 - SQL Server Password Changer。它可以重置您的 sa 密码,并在您的帐户被锁定或禁用时解锁您的帐户。
答案3
您可能需要将其置于单用户模式(与早期版本不同,本地 Windows 管理员不会自动获得 SQL Server 2008 的访问权限):http://blogs.ameriteach.com/chris-randall/2009/12/11/sql-server-2008-forgot-to-add-an-administrator-account.html