Sql-Server

Azure SQL 託管實例中的數據庫級別訪問

  • March 5, 2020

在我的 Azure SQL 託管實例中,我有兩個數據庫,Database_A 和 Database_B。使用者 A_ABC 只能訪問 Database_A,並且他是角色 db_owner 的一部分。

當嘗試更改表時,我們收到以下錯誤

查詢: alter table mta.mta_dmn add active char(3)

錯誤: 消息 916,級別 14,狀態 2,過程 TR_XYZ_DDL_AUDIT,第 8 行

$$ Batch Start Line 0 $$ 伺服器主體“A_ABC”無法在目前安全上下文下訪問數據庫“Database_B”。 Database_A 和 Database_B 之間沒有交叉數據庫連接或任何連結,在數據庫所有者權限下,我的理解是使用者應該能夠在 Database_A 中進行任何活動。也沒有任何一個數據庫中存在的過程“TR_XYZ_DDL_AUDIT”

我無法找到為什麼會出現此錯誤/無法理解此錯誤或無法找到解決方案。完全放棄登錄並重新創建以防萬一,但問題仍然存在

我的猜測是你有一個 DDL 觸發器,這是造成這種情況的根本原因。檢查 Database_A 中的觸發器(假設這是要更改的表所在的數據庫)。

可能此觸發器在 Database_B 中執行一個儲存過程,該過程應該對此操作進行一些審核。

TR_XYZ_DDL_AUDIT 這個名字給了我們一些線索。

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