我无法使用SQL Server身份验证登录到SQL Server 2008。
我只能使用Windows身份验证模式登录。
在安装SQL Server 2008 R2时,我只选择了默认值。
我无法使用SQL Server身份验证登录到SQL Server 2008。
我只能使用Windows身份验证模式登录。
在安装SQL Server 2008 R2时,我只选择了默认值。
Answers:
您的服务器可能已配置为仅在Windows身份验证模式下运行。可以通过在SQL Server Management Studio中打开SQL Server实例的属性并查看“ 安全性”部分来进行检查:
或者,您可以使用Windows帐户登录后运行以下SQL Server语句:
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
如果返回的值是LoginMode 2
那么SQL Server和Windows身份验证模式已被激活。(有关如何更改此设置的详细信息,请参阅步骤2。)
如果返回的值是LoginMode 1
那么Windows身份验证模式已被激活。(有关如何更改此设置的更多详细信息,请参见步骤1。)无法使用纯SQL Server登录名登录。
如果您的实例已配置为仅使用Windows身份验证模式,则必须打开SQL Server和Windows身份验证模式并重新启动服务器。请遵循以下简单步骤:
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO
将属性窗口的“安全性”部分中的设置更改为SQL Server和Windows身份验证模式。
(可以通过SQLCMD模式下的 SQL脚本实现)
-- Connect to your instance
-- (Replace <instancename> with your instance's name
:connect <instancename>
-- Stop your SQL Server instance
-- (Replace SQLSERVERAGENT with the name of your service)
!! net stop SQLSERVERAGENT
-- (Replace MSSQLServer with the name of your service)
!! net stop MSSQLServer
-- Start your SQL Server instance
-- (Replace SQLSERVERAGENT with the name of your service)
!! net start MSSQLServer
-- (Replace SQLSERVERAGENT with the name of your service)
!! net start SQLSERVERAGENT
:connect localhost
右键单击您的SQL Server实例,然后从上下文菜单中选择“ 重新启动 ”:
通过发出以下命令,验证您的实例是否以SQL Server和Windows身份验证模式运行:
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
您应该会收到LoginMode 2
。
验证是否已为SQL Server和Windows身份验证模式选择了单选按钮。
如果您的sa帐户已被禁用,请遵循步骤2。否则,您完成了。
如果停用了sa帐户,请继续并重新启用SQL Server帐户。这可以通过以下脚本实现:
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'<your password>'
GO
ALTER LOGIN [sa] ENABLE
GO
...或通过SSMS。
有时由于许多错误密码或任何违反策略的行为而禁用了登录。因此,我们可以做的就是使用窗口身份验证登录,更改密码并再次启用登录。
使用Windows身份验证登录数据库
运行查询:
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
需要使用CHECK_POLICY,因为它指定应在此登录名上强制运行SQL Server的计算机的Windows密码策略。我们将其设为OFF时的默认值为ON,它将毫无困难地更改密码。稍后您可以开启
注意:我观察到,在CHECK_POLICY处于GUI上时,更改密码的SSME解决方案并非每次都有效。我没有背后的原因,但是我已经观察到了。