Query

垂直彈性查詢未辨識對象

  • January 18, 2021

我確實創建了一個外部數據源,與此處描述的指南https://www.sqlservercentral.com/articles/cross-database-queries-in-azure-sql-database相同。該過程非常簡單,僅用於說明。

CREATE MASTER KEY ENCRYPTION ...
CREATE DATABASE SCOPED CREDENTIAL ...

CREATE LOGIN <externaldbname> WITH PASSWORD = '<somepassword1>'; 
CREATE USER externaldbname FOR LOGIN externaldbname;

CREATE USER externaldbname FOR LOGIN externaldbname;

CREATE EXTERNAL DATA SOURCE ...
CREATE EXTERNAL TABLE ..

全部執行成功。現在,當我嘗試從外部數據庫中選擇某些內容時,會引發此錯誤

消息 46823,級別 16,狀態 1,第 3 行從 sar*****.database.windows.net.carDB 檢索數據時出錯。收到的基本錯誤消息是:‘無效的對象名稱’SalesLT.Addresstest’。’。

我沒有收到錯誤消息,因為我遵循的方法在多個網站和教程中使用/顯示。

它看起來與我相關的權限/身份驗證。

假設這 2 個數據庫位於同一邏輯伺服器上,那麼您要驗證的事項清單:

master 數據庫中有一個名為

“carDB”數據庫中有一個使用者名為映射到登錄

名 CarDB 中存在 SalesLT.Addresstest 表 carDB 中

的使用者對 SalesLT.Addresstest 表具有 SELECT 權限

通過以使用者身份連接到 carDB 並從 SalesLT.addresstest 中選擇來測試上述內容

在您正在查詢的數據庫中創建了一個 MASTER KEY 在您正在查詢的數據庫中

有一個 CREDENTIAL,其身份與創建的 LOGIN 匹配 - 相同的名稱和密碼。

EXTERNAL DATA SOURCE 是在您查詢的數據庫中

創建的 EXTERNAL TABLE 是在您查詢的數據庫中創建的,並且與 SalesLT.Addresstest 的架構相匹配

該演練中似乎沒有 SalesLT 數據庫或 Addresstest 表。嘗試完全遵循它,看看是否得到相同的結果。

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