Sql-Server

無法使用 SA 和 SQL 身份驗證登錄

  • January 3, 2019

我無法使用 SQL Server 身份驗證登錄到 SQL Server 2008。

我只能使用 Windows 身份驗證模式登錄。

我在安裝 SQL Server 2008 R2 時只選擇了預設值。

你有沒有看任何地方?右鍵點擊伺服器並選擇“屬性”,然後選擇“安全”螢幕。

在此處輸入圖像描述

然後,使用您的 Windows 身份驗證管理員帳戶登錄,並設置saSQL 身份驗證帳戶的密碼。

ALTER LOGIN sa WITH PASSWORD = 'strong password here';

哪種認證模式?

您的伺服器可能已配置為僅在Windows 身份驗證模式下執行。這可以通過在 SQL Server Management Studio 中打開 SQL Server 實例的屬性並查看安全部分來檢查:

SSMS 安全屬性

或者您可以在使用 Windows 帳戶登錄後執行以下 SQL Server 語句:

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'

LoginMode 2如果返回的值為SQL Server 和 Windows 身份驗證模式,則已啟動。(有關如何更改的詳細資訊,請參見步驟 2。 )

如果返回的值為Windows 身份驗證模式LoginMode 1,則已啟動。(有關如何更改此設置的更多詳細資訊,請參閱步驟 1。)無法使用純 SQL Server 登錄名登錄。


步驟 1. - 更改身份驗證模式

如果您的實例已配置為僅使用Windows 身份驗證模式,則您必須打開SQL Server 和 Windows 身份驗證模式並重新啟動伺服器。請按照以下簡單步驟操作:

1.改變認證方式

SQL 腳本

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

SQL Server 管理工作室 (SSMS)

將屬性視窗的安全部分中的設置更改為SQL Server 和 Windows 身份驗證模式

SSMS 安全屬性 - SQL Server 和 Windows 身份驗證模式

2.重啟SQL Server實例

SQL 腳本

(可以通過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 管理工作室 (SSMS)

右鍵點擊您的 SQL Server 實例並從上下文菜單中選擇重新啟動:

通過上下文菜單重啟 SSMS 實例

3.驗證設置

SQL 腳本

通過發出以下命令,驗證您的實例是否在SQL Server 和 Windows 身份驗證模式下執行:

EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'

您應該收到一個LoginMode 2.

SQL Server 管理工作室 (SSMS)

驗證是否為SQL Server 和 Windows 身份驗證模式選擇了單選按鈕。

SSMS 安全屬性 - SQL Server 和 Windows 身份驗證模式

如果您的sa帳戶已被禁用,請同時執行第 2 步。否則你就完了。


步驟 2. 啟用 sa 帳戶

在停用sa帳戶的情況下,只需繼續並再次啟用 SQL Server 帳戶。這可以通過以下腳本實現:

USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'<your password>'
GO
ALTER LOGIN [sa] ENABLE
GO

…或通過 SSMS。

引用自:https://dba.stackexchange.com/questions/64483