Sql-Server-2014

將 AD 安全組添加到 SQL 連結伺服器

  • April 29, 2021

我有一個關於在 SQL Server 的連結伺服器上為使用者組添加權限的問題。我不是安全專家,所以我呼籲所有人。

這裡是拓撲:

我在 Hyper-V 虛擬伺服器上安裝了我稱之為 X 的私有軟體。該軟體的使用者使用遠端桌面通過虛擬機進行連接。

該應用程序有自己的 SQL Server 數據庫實例。此數據庫的安全性是 Windows Authenticated。Application X 使用者都屬於 Windows Server 2019 Active Directory (AD) 中的一個使用者組。

另一方面,我有一個 Y 應用程序 (Microsoft Dynamic 365),它本地安裝在每個工作站上,並且有自己的 SQL 實例。該應用程序使用一個我也稱為 Y 的 SQL 數據庫。

因為我想在 2 個 SQL 實例之間共享資訊,所以我在 X 實例上創建了一個連結伺服器到 Y 實例。我通過一些 SQL 查詢成功地從我的實例 X 中插入、更新和刪除實例 Y 的數據庫中的一些資訊。為此,我授予自己 X 數據庫的 DB_owner 權限。

我已經達到了允許使用者組 X 能夠使用與 SQL 伺服器 Y 上互動的相同查詢從應用程序 X 執行的階段。

但是,我意識到我需要從 Security、Connection 菜單在應用程序 Y 的 SQL 實例中創建 X 的每個使用者。當我授予 DB_Owner 角色時,我的請求有效。我原以為我可以將 AD 中使用的相同組用於我的 X 應用程序。我試過很好,但它不起作用。

我不知道這是否是由於我的連結伺服器的配置造成的。

這是我正在使用的配置:

在此處輸入圖像描述

在此處輸入圖像描述

有人可以為我指出一個解決方案,以避免在我的實例 Y 中從 X 重新創建我的 AD 的每個使用者,並且只需連結我的組 X。

對於組,它應該以與單個使用者相同的方式工作。您必須有適當的 spn 才能在兩個實例之間授予 kerberos 委派。

也許您已經從 ssms 嘗試過,所以您還沒有完成兩跳進行身份驗證。以這種方式,NTLM 授予您權限,但是當您使用應用程序時,您需要在兩個躍點上授予身份驗證,因此您會遇到未授予使用者正確登錄的匿名身份驗證錯誤。

請檢查一下。

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/register-a-service-principal-name-for-kerberos-connections?view=sql-server-ver15

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