Sql-Server

可以使用 Set-AzSqlDatabaseAudit 將手動數據更改記錄到 Azure SQL 表嗎?

  • March 16, 2022

這是在 Azure SQL 數據庫中僅記錄一個表的後續問題

可以使用 SSMS (Microsoft SQL Server Management Studio) 以及適當的使用者名和密碼連接到我的 Azure SQL Server 數據庫。

如果有人這樣做,然後選擇其中一個表,並執行“編輯前 200 行”,那麼他/她可以手動更改表的值之一 - 通過點擊內部並鍵入新值 - 而無需使用 SQL命令。

可以通過建構第二個“歷史”表並向第一個表添加觸發器來記錄此類更改,以便在任何更新時向歷史表添加一行。但是,我不想走那條路。

我想知道是否可以使用 PowerShell 命令記錄此類手動數據更改Set-AzSqlDatabaseAudit

就像是

Set-AzSqlDatabaseAudit `
 -ResourceGroupName "MyResourceGroupName" `
 -ServerName "MySqlServerName" `
 -DatabaseName "MyDatabaseName" `
 -AuditActionGroup "DATABASE_OBJECT_CHANGE_GROUP" `
 -AuditAction `
   "MANUAL_EDIT ON dbo.LoginTable BY public"

請注意,我不一定對邪惡活動持懷疑態度。當管理員需要登錄數據庫來修復某些數據問題時,有一些合法的案例,但我想要他們活動的“跟踪”。

例如,某人登錄數據庫並將表中的值從“4.1”更改為“4.2”,而不使用任何 SQL 命令

那不會發生。所有修改都是使用 SQL 命令完成的。

在您的觸發器案例中,觸發器包含一個執行修改的 SQL 命令。

當您說“手動數據更改”時,我們需要詳細說明。如果您使用某種工具來修改您的數據,那麼該工具會向 SQL Server 發送一條 SQL 註釋。或者呼叫儲存過程,該儲存過程又具有修改表的 SQL 命令。

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