首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 利用 DDL 觸發器監控資料庫結構變更

     編輯:關於SqlServer

資料庫物件的新增、刪除或修改一旦發生誤操作,可能導致嚴重後果,迫使資料庫管理員或開發人員重寫相關程式碼。為了在資料庫結構變更出現問題時能夠追蹤並定位根因,我們可以善用 DDL 觸發器記錄如「使用者建立資料表」等操作,大幅降低追蹤與定位資料庫結構變更的繁瑣程度。

什麼是 DDL 觸發器?

DDL 觸發器是一種特殊觸發器,它會在回應資料定義語言 (DDL) 陳述式時觸發。可用於執行資料庫管理任務,例如稽核與規範資料庫操作。透過 DDL 觸發器可達成下列目的:

  • 防止對資料庫結構進行特定變更
  • 在資料庫結構變更時觸發特定動作
  • 記錄資料庫結構的變更或事件

與標準 DML 觸發器類似,DDL 觸發器在回應事件時執行預存程序。但不同於 DML 觸發器會針對 UPDATE、INSERT、DELETE 陳述式觸發,DDL 觸發器主要回應 CREATE、ALTER、DROP、GRANT、DENY、REVOKE、UPDATE STATISTICS 等 DDL 陳述式,執行 DDL 風格操作的系統預存程序也能啟動 DDL 觸發器。

如何使用 DDL 觸發器?

第一步,建立一張資料表記錄資料庫範圍內所有 DDL 操作。以下程式碼在 AdventureWorks 範例資料庫中建立稽核記錄表:

USE AdventureWorks
GO
CREATE TABLE AuditLog
(
    ID INT PRIMARY KEY IDENTITY(1,1),
    Command NVARCHAR(1000),
    PostTime NVARCHAR(24),
    HostName NVARCHAR(100),
    LoginName NVARCHAR(100)
)
GO

接著建立 DDL 觸發器,攔截資料庫層級的 DDL 事件並寫入稽核表。這樣即可完整記錄誰在何時執行了何種結構變更指令,為事後追溯提供可靠依據。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved