Sql-Server-Express

只有本地管理員可以遠端連接

  • January 11, 2016

當我嘗試從客戶端連接到 SQL Express 實例時,我遇到了一個問題。伺服器記錄錯誤:

SSPI 握手失敗,錯誤程式碼為 0x8009030c,狀態 14,同時建立具有集成安全性的連接;連接已關閉。原因:AcceptSecurityContext 失敗。Windows 錯誤程式碼指示失敗的原因。登錄嘗試失敗

$$ CLIENT: 192.168.245.50 $$

我登錄的帳戶是 sysadmin,並且擁有嘗試連接的數據庫的所有可能權限,但仍然失敗。但是,如果我添加嘗試連接到本地管理員組的使用者,它就可以工作。這不是一個好的解決方案,我不希望所有使用者都是伺服器上的本地管理員。為什麼使用者需要是本地管理員?

我認為 SPN 設置正確。

在此處輸入圖像描述

它都在同一個域中並使用域帳戶。Windows 身份驗證用於登錄。

與 DC 的連接不應該有問題。使用命名實例名稱(如果域使用者是本地管理員,它可以工作)。

來自 SQL 錯誤日誌的日誌:

03/09/2015 15:22:47,登錄,未知,登錄失敗。登錄來自不受信任的域,不能用於 Windows 身份驗證。

$$ CLIENT: 192.168.245.50 $$2015 年 3 月 9 日 15:22:47,登錄,未知,錯誤:18452 嚴重性:14 狀態:1。 2015 年 3 月 9 日 15:22:47,登錄,未知,SSPI 握手失敗,錯誤程式碼為 0x8009030c 狀態 14 而建立與集成安全的連接;連接已關閉。原因:AcceptSecurityContext 失敗。Windows 錯誤程式碼指示失敗的原因。登錄嘗試失敗 $$ CLIENT: 192.168.245.50 $$ 2015 年 3 月 9 日 15:22:47,登錄,未知,錯誤:17806 嚴重性:20 狀態:14。

從嘗試連接的客戶端記錄:

LSRetailPosis.POS.Program: System.Data.SqlClient.SqlException (0x80131904): 登錄失敗。登錄來自不受信任的域,不能用於 Windows 身份驗證。在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource``1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSourceSystem.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection externalConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1次重試, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& 連接) 在 System.Data.SqlClient.SqlConnection.TryOpenInner (TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 次重試) ) 在 System.Data.SqlClient.SqlConnection.Open() 在 LSRetailPosis.Settings.Database.CheckDatabaseExistence() 在 LSRetailPosis.Settings.Database.CheckDatabaseSettings() 在 LSRetailPosis.Settings.ApplicationSettings.InitializeSettings(String

$$ $$ args) 在 LSRetailPosis.POS.Program.InitializeAndLoadPOS(String$$ $$ 參數,布爾擁有,SplashScreenForm splashScreenForm) 在 LSRetailPosis.POS.Program.Main(String$$ $$args) ClientConnectionId:d57c7fd9-4a47-41b7-af07-ed93627d2930。

我找到了解決這個問題的方法。

我將域使用者添加到:本地安全策略 -> 本地策略 -> 使用者權限分配 -> 從網路訪問這台電腦

在此處輸入圖像描述

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