在SQL Server 2012中更改用户密码 使用SSMS 使用Transact-SQL

问题描述

我安装了Microsoft sql Server2012。我打开Microsoft sql Server管理并使用Windows身份验证登录。我不知道认密码“ sa”。所以,我需要改变它。 我从回答这个问题的步骤开始:Unable to change the password of "sa" in SQL Server 2008,但密码不变!

为更好地理解,请依次查看以下屏幕截图:
1.我选择登录名。之后,我选择“ sa”。然后,选择“属性”。

enter image description here


2.如您所见,密码的长度为15个字符。

enter image description here


3.我将其更改为“ 1234”。 (逻辑上密码的长度等于4个字符),然后选择“确定”

enter image description here


  1. 我曾尝试使用sql Server身份验证登录

    enter image description here

    但是我无法登录系统。

    enter image description here


您对这个奇怪的问题有任何想法吗?

一些失败的尝试

更新
我首先说的是密码长度不正确。但是我知道密码的长度不是安全方面的真实长度。我修改了第4步,提出了更合理的理由

更新2
我打开日志:

enter image description here

看来我的身份验证模式是错误的:

用户“ sa”的登录失败。原因:尝试使用sql登录 身份验证失败。服务器配置为Windows身份验证 只要。 [客户:]

但是我之前更改了身份验证模式:

sql Server和Windows身份验证模式

enter image description here

更新3
终于我的问题解决了! 我的问题的原因是更改身份验证模式错误。 Larnu的答案是一个很好的解决方案。另外,我建议您使用此链接获取逐步指南:How To Enable SQL Server Authentication

解决方法

这里的真正问题是您仅在Windows身份验证中配置了服务器。如果处于纯Windows身份验证模式,则无法使用SQL身份验证连接到实例,因为(显然,)SQL身份验证不是Windows身份验证。

您需要change the authentication mode的服务器:

启用sa登录

您可以使用SSMS或T-SQL启用sa登录。

使用SSMS

  1. 在“对象资源管理器”中,依次展开“安全性”,“登录名”,右键单击“ sa”,然后单击“属性”。
  2. 在“常规”页面上,您可能必须创建并确认sa登录名的密码。
  3. 在“状态”页面上的“登录”部分,单击“启用”,然后单击“确定”。

使用Transact-SQL

以下示例启用sa登录并设置新密码。在运行它之前,请使用强密码替换。

ALTER LOGIN sa ENABLE ;  
GO  
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>' ;  
GO  

更改身份验证模式(T-SQL)

以下示例将服务器身份验证从混合模式(Windows + SQL)更改为仅Windows。

警告

下面的示例使用扩展的存储过程来修改服务器注册表。如果您不正确地修改注册表,可能会出现严重的问题。这些问题可能需要您重新安装操作系统。 Microsoft无法>保证可以解决这些问题。修改注册表需要您自担风险。

USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLServer\MSSQLServer',N'LoginMode',REG_DWORD,1
GO

对于混合身份验证,最终参数将是2,而不是1