KB4459327 - 修正:當您啟用伺服器稽核並在 SQL Server 中使用記憶體內部交易時,發生錯誤 41317

套用到
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

症狀

假設您在 Microsoft SQL Server 2016 或 2017 中將記憶體交易與sp_getapplock系統預存程序搭配使用。 如果您在 SCHEMA_OBJECT_ACCESS_GROUP 伺服器層級稽核動作群組上啟用伺服器稽核,您會收到類似下列的「Msg 41317」錯誤訊息:

注意

Msg 41317, Level 16, State 4, Line LineNumber
存取記憶體最佳化資料表或原生編譯模組的使用者交易無法存取多個使用者資料庫或資料庫模型及 msdb,而且無法寫入至主版。

解決方式

此問題已在下列 SQL Server 累積更新中修正:

SQL Server 2017 累積更新 13

SQL Server 2016 Service Pack 2 的累積更新 3

注意: 此更新也解決了當沒有在資料庫中建立結構描述權限的使用者執行建立結構描述命令時,以及在資料庫稽核規格中啟用SCHEMA_OBJECT_ACCESS_GROUP和SCHEMA_OBJECT_CHANGE_GROUP時,會出現未解決的鎖死的問題。

關於 SQL Server 組建

每個適用於 SQL Server 2016 的新組建都包含前一個組建中的所有 Hotfix 和安全性修正程式。 建議您安裝最新的 SQL Server 累積更新:

適用於 SQL Server 2017 的最新累積更新

適用於 SQL Server 2016 的最新組建

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

瞭解 Microsoft 用來說明軟體更新的 術語 。