CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Cria um objeto de especificação de auditoria do banco de dados usando o recurso de auditoria do SQL Server. Para obter mais informações, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).
Convenções de sintaxe de Transact-SQL
Sintaxe
CREATE DATABASE AUDIT SPECIFICATION audit_specification_name
{
FOR SERVER AUDIT audit_name
[ ADD (
{ <audit_action_specification> | audit_action_group_name }
[ , ...n ] )
]
[ WITH ( STATE = { ON | OFF } ) ]
}
[ ; ]
<audit_action_specification>::=
{
action [ , ...n ] ON [class::]securable BY principal [ , ...n ]
}
Argumentos
audit_specification_name
O nome da especificação de auditoria.
audit_name
O nome da auditoria à qual essa especificação se aplica.
audit_action_specification
A especificação de ações sobre protegíveis por parte dos diretores que devem ser registradas na auditoria.
action
O nome de uma ou mais ações auditáveis no nível do banco de dados. Para obter uma lista de ações de auditoria, consulte Ações e grupos de ação do SQL Server Audit.
audit_action_group_name
O nome de um ou mais grupos de ações auditáveis no nível do banco de dados. Para obter uma lista de grupos de ações de auditoria, consulte Ações e grupos de ações de auditoria do SQL Server.
class
O nome da classe (se aplicável) no protegível.
securable
A tabela, exibição ou outro objeto protegível no banco de dados no qual aplicar a ação de auditoria ou o grupo de ações de auditoria. Para obter mais informações, consulte Securables.
principal
O nome da entidade de segurança do banco de dados na qual aplicar a ação de auditoria ou o grupo de ações de auditoria. Para auditar todas as entidades de banco de dados, use a entidade de banco de dados pública . Para obter mais informações, confira Entidades de segurança (Mecanismo de Banco de Dados).
WITH ( STATE = { ON | OFF } )
Habilita ou desabilita a auditoria de registros de coleta para essa especificação de auditoria.
Comentários
As especificações de auditoria de banco de dados são objetos não protegidos que residem em um determinado banco de dados. Quando uma especificação de auditoria de banco de dados é criada, ela fica em um estado desabilitado.
Permissões
Os usuários com a permissão ALTER ANY DATABASE AUDIT
podem criar especificações de auditoria de banco de dados e associá-las a qualquer auditoria.
Depois que uma especificação de auditoria de banco de dados é criada, os usuários com a CONTROL SERVER
permissão ou a sysadmin
conta podem exibi-la.
Exemplos
Os exemplos de código do Transact-SQL deste artigo usa o banco de dados de exemplo AdventureWorks2022
ou AdventureWorksDW2022
, que pode ser baixado da home page Microsoft SQL Server Samples and Community Projects.
R. Auditar SELECT e INSERT em uma tabela para qualquer entidade de segurança do banco de dados
O exemplo a seguir cria uma auditoria de servidor chamada Payroll_Security_Audit
e, em seguida, uma especificação de auditoria de banco de dados chamada Payroll_Security_Audit
de auditorias SELECT
e INSERT
instruções de qualquer membro da função de banco de dados público , para a HumanResources.EmployeePayHistory
tabela. Cada usuário é auditado, pois cada usuário é sempre membro da função pública .
USE master;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payroll_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payroll_Security_Audit
WITH (STATE = ON);
GO
-- Move to the target database.
USE AdventureWorks2022;
GO
-- Create the database audit specification.
CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables
FOR SERVER AUDIT Payroll_Security_Audit ADD (
SELECT, INSERT ON HumanResources.EmployeePayHistory BY PUBLIC
)
WITH (STATE = ON);
GO
B. Auditar qualquer modificação de dados em todos os objetos em um esquema para uma função de banco de dados específica
O exemplo a seguir cria uma auditoria de servidor chamada DataModification_Security_Audit
e, em seguida, uma especificação de auditoria de banco de dados chamada Audit_Data_Modification_On_All_Sales_Tables
that audits INSERT
, UPDATE
e DELETE
instruções de usuários em uma nova função SalesUK
de banco de dados , para todos os objetos no Sales
esquema.
USE master;
GO
-- Create the server audit.
-- Change the path to a path that the SQLServer Service has access to.
CREATE SERVER AUDIT DataModification_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT DataModification_Security_Audit
WITH (STATE = ON);
GO
-- Move to the target database.
USE AdventureWorks2022;
GO
CREATE ROLE SalesUK
GO
-- Create the database audit specification.
CREATE DATABASE AUDIT SPECIFICATION Audit_Data_Modification_On_All_Sales_Tables
FOR SERVER AUDIT DataModification_Security_Audit ADD (
INSERT, UPDATE, DELETE ON SCHEMA::Sales BY SalesUK
)
WITH (STATE = ON);
GO
Tarefas relacionadas
Especificações de auditoria do servidor:
- CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
- ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
- DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
Especificações de auditoria de banco de dados:
- CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
- ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
- DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
Exibições de catálogo e DMVs:
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Conteúdo relacionado
- Criar uma auditoria de servidor e uma especificação de auditoria de servidor
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- ALTER AUTHORIZATION (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)