Sql-Server
使用連結伺服器查詢視圖的最大限制權限
我創建了通過連結伺服器(SQL Server 2014)查詢另一台伺服器的視圖。
我需要授予開發人員使用此視圖的權限。
僅授予 select 是不夠的,他們收到以下錯誤:
對遠端伺服器的訪問被拒絕,因為不存在登錄映射。
我可以授予他們從該視圖中選擇的最受限制的權限是什麼?
我們使用 SQL 登錄連接到連結伺服器(使用此安全上下文進行),我可以使用我的使用者查詢此視圖。我還可以使用我的 Active Directory 使用者查詢此視圖。我沒有嘗試使用連結伺服器登錄來連接訪問連結伺服器,但是如果連接登錄有任何問題,我的 AD 使用者無法連接到連結伺服器。
出於測試目的,我將sysadmin授予該使用者。它可以查詢這個視圖,所以這絕對是一個權限問題。在授予sysadmin之前,使用者只有public,在伺服器級別沒有特殊權限,並且在視圖的數據庫中只有db_reader 。
重新創建連結伺服器而不
@provstr=N'ApplicationIntent=ReadOnly'
參數解決
no login-mapping exists
的錯誤。所以選擇權限就足夠了。
您收到的消息告訴您,您提供的憑據與目標電腦上的憑據之間沒有映射。您需要確保用於設置連結伺服器的憑據也具有登錄名,或者可以映射到連結伺服器上的登錄名。
我懷疑當您設置它時,您指定了對您有用的選項
Be made using the login's current security context
,因為您在遠端機器上登錄了 - 但它不適用於其他任何人,因為他們沒有足夠的憑據來查詢連結伺服器。(只是一種預感)這是有關如何設置連結伺服器以及所有選項的指南,我懷疑您可能需要更改用於連接到連結伺服器的安全上下文或將其他帳戶添加到其中。