Sql-Server

SQL Authenticated Account 無法在 MS SQL Server 中選擇視圖

  • October 16, 2020

我正在嘗試使用經過 SQL 身份驗證的帳戶來選擇視圖。此視圖實際上是從本地驅動器(通過 LinkedServer)讀取電子表格。我收到以下錯誤:

Msg 7416, Level 16, State 2, Line 1
Access to the remote server is denied because no login-mapping exists.

目前,連結伺服器設置為對於上面列表中未定義的登錄,將使用登錄的目前安全上下文進行連接。電子表格位於同一台伺服器上。

如何解決此錯誤並使用同一帳戶選擇視圖?該帳戶被添加為 db_owner。

PS 如果我使用 Windows 身份驗證帳戶執行視圖,它工作正常

如果您查看How to Create a Linked Server文件,您將了解您目前的配置是這樣工作的:

使用登錄名的目前安全上下文
建立連接 指定將使用登錄名的目前安全上下文為列表中未定義的登錄建立連接。如果使用 Windows 身份驗證連接到本地伺服器,您的 Windows 憑據將用於連接到遠端伺服器。如果使用 SQL Server 身份驗證連接到本地伺服器,則將使用登錄名和密碼連接到遠端伺服器。在這種情況下,遠端伺服器上必須存在具有完全相同名稱和密碼的登錄名。

由於 Windows 上不存在您的 SQL Server 登錄名,因此您無法訪問該文件。
您應該創建到該特定登錄名的映射,定義遠端使用者和密碼,並在該伺服器上具有讀取文件的權限。

請注意,使用該 SQL Server 使用者登錄 SQL Server 的任何人都將擁有您在映射中定義的 Windows 登錄權限。

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