共用方式為


使用 Transact-SQL 建立及管理稽核

使用 Management Studio 或 Transact-SQL 執行 Transact-SQL 資料定義語言 (DDL) 陳述式、動態管理檢視和函數或目錄檢視時,您可以針對您的 SQL Server 環境建立簡單或複雜的 SQL Server Audit 方案。

參考主題

您可以使用 DDL 陳述式、動態管理檢視和函數及目錄檢視來實作 SQL Server Audit 的所有層面。

權限

SQL Server Audit 的每一個功能和命令都有個別的權限需求。

若要建立、改變或卸除伺服器稽核或伺服器稽核規格,伺服器主體需要 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 權限。若要建立、改變或卸除資料庫稽核規格,資料庫主體需要資料庫的 ALTER ANY DATABASE AUDIT 權限或是 ALTER 或 CONTROL 權限。此外,主體還必須擁有連接資料庫的權限,或 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 權限。

除非另外指定,否則檢視目錄檢視需要主體具備下列其中一項:

  • sysadmin 固定伺服器角色中的成員資格。

  • CONTROL SERVER 權限。

  • VIEW SERVER STATE 權限。

  • ALTER ANY AUDIT 權限。

  • VIEW AUDIT STATE 權限 (只提供主體存取 sys.server_audits 目錄檢視的權限)。

主體必須擁有 VIEW SERVER STATE 或 ALTER ANY AUDIT 權限,才能使用動態管理檢視。

如需如何授與權限的詳細資訊,請參閱<GRANT (Transact-SQL)>。

警告注意事項警告

系統管理員 (sysadmin) 角色中的主體可以損害任何稽核元件,而 db_owner 角色中的主體可以損害資料庫中的稽核規格。SQL Server Audit 將會驗證建立或改變稽核規格的登入至少要有 ALTER ANY DATABASE AUDIT 權限。但是,當您附加資料庫時,它不會進行任何驗證。您應該假設所有資料庫稽核規格都與系統管理員 (sysadmin) 或 db_owner 角色中的主體一樣值得信任。

資料定義語言陳述式

動態檢視和函數

下表列出可用於 SQL Server 稽核的動態檢視和函數。

動態檢視和函數

描述

sys.dm_audit_actions

傳回稽核記錄檔中可報告的每一個稽核動作及 SQL Server Audit 中可設定之每一個稽核動作群組的資料列。

sys.dm_server_audit_status

提供有關稽核之目前狀態的資訊。

sys.dm_audit_class_type_map

傳回一個資料表,它會將稽核記錄檔中的 class_type 欄位對應到 sys.dm_audit_actions 中的 class_desc 欄位。

fn_get_audit_file

從伺服器稽核建立的稽核檔案中傳回資訊。

目錄檢視

下表列出可用於 SQL Server 稽核的目錄檢視。

目錄檢視

描述

sys.database_ audit_specifications

包含有關伺服器執行個體上 SQL Server 稽核內之資料庫稽核規格的資訊。

sys.database_audit_specification_details

包含有關伺服器執行個體上所有資料庫的 SQL Server 稽核內之資料庫稽核規格的資訊。

sys.server_audits

針對伺服器執行個體中的每一個 SQL Server 稽核各包含一個資料列。

sys.server_audit_specifications

包含有關伺服器執行個體上 SQL Server 稽核內之伺服器稽核規格的資訊。

sys.server_audit_specifications_details

包含有關伺服器執行個體上 SQL Server 稽核內之伺服器稽核規格詳細資料 (動作) 的資訊。

sys.server_file_audits

包含有關伺服器執行個體上 SQL Server 稽核內之檔案稽核類型的存放區擴充資訊。