在 SQL Server 2012 中更改用户密码

Changing User's Password In SQL Server 2012

我安装了Microsoft SQL server 2012。我打开Microsoft SQL 服务器管理并使用Windows 身份验证登录。我不知道“sa”的默认密码。所以,我需要改变它。 我按照这个问题的答案中的步骤操作:Unable to change the password of "sa" in SQL Server 2008 但密码没有更改!

为了更好地理解,请按顺序查看这些屏幕截图:
1. 我 select 登录。之后,我select“sa”。然后,select“属性”。


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


3.我把它改成“1234”。 (密码的长度逻辑上等于 4 个字符)然后 select "OK"


  1. 我尝试使用 SQL 服务器身份验证登录 但是我无法登录系统。

你知道这个奇怪的问题吗?

一些不成功的尝试

更新
我首先说的密码长度不正确。但我注意到密码的长度并不是安全方面的实际长度。我用更好的理由编辑第 4 步

更新 2
我打开日志: 看来我的认证方式不对:

Login failed for user 'sa'. Reason: An attempt to login using SQL authentication failed. The server is configured for Windows authentication only. [CLIENT: ]

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

SQL Server and windows Authentication mode

更新 3
终于,我的问题解决了! 我的问题的原因是更改身份验证模式错误。 Larnu的回答是一个很好的解决方案。另外,我建议这个 link 作为分步指南:How To Enable SQL Server Authentication

真正的问题是您的服务器只配置了 Windows 身份验证。如果实例处于 Windows 仅身份验证模式,您 不能 使用 SQL 身份验证连接到实例,因为(显而易见的是)SQL 身份验证是 Windows认证。

您需要 change the authentication mode 服务器:

Enable sa login

You can enable the sa login with SSMS or T-SQL.

Use SSMS

  1. In Object Explorer, expand Security, expand Logins, right-click sa, and then click Properties.
  2. On the General page, you might have to create and confirm a password for the sa login.
  3. On the Status page, in the Login section, click Enabled, and then click OK.

Using Transact-SQL

The following example enables the sa login and sets a new password. Replace with a strong password before you run it.

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

Change authentication mode (T-SQL)

The following example changes Server Authentication from mixed mode (Windows + SQL) to Windows only.

Caution

The following example uses an extended stored procedure to modify the server registry. Serious problems might occur if you modify the registry incorrectly. These problems might require you to reinstall the operating system. Microsoft cannot > guarantee that these problems can be resolved. Modify the registry at your own risk.

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

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