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 ]
}
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
Argumentos
audit_specification_name
É o nome da especificação de auditoria do servidor.
audit_name
É o nome da auditoria à qual esta especificação é aplicada.
audit_action_specification
A especificação de ações em protegíveis por entidades que devem ser registradas na auditoria.
action
O nome de um ou mais ações auditáveis em nível de 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 em nível de 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 segurança do banco de dados, use a entidade de segurança do banco de dados public
. 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.
Após a criação de uma especificação de auditoria de banco de dados, ela pode ser exibida pelos usuários que têm a permissão CONTROL SERVER
ou a conta sysadmin
.
Exemplos
a. 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 denominada Payrole_Security_Audit
e, em seguida, uma especificação de auditoria de banco de dados denominada Payrole_Security_Audit
que audita as instruções SELECT
e INSERT
por qualquer membro dapublic
da função de banco de dados para a tabela HumanResources.EmployeePayHistory
no banco de dados AdventureWorks2022
. Como efeito disso, cada usuário é auditado, visto que cada usuário sempre é membro da função public
.
USE master ;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payrole_Security_Audit
TO FILE ( FILEPATH =
'D:\SQLAudit\' ) ; -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payrole_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 Payrole_Security_Audit
ADD (SELECT , INSERT
ON HumanResources.EmployeePayHistory BY public )
WITH (STATE = ON) ;
GO
B. Faça a auditoria de qualquer DML (INSERT, UPDATE ou DELETE) em todos os objetos no esquema vendas para uma função de banco de dados específica
O exemplo a seguir cria uma auditoria de servidor denominada DataModification_Security_Audit
e, em seguida, uma especificação de auditoria de banco de dados chamada Audit_Data_Modification_On_All_Sales_Tables
que audita instruções INSERT
, UPDATE
e DELETE
por usuários em uma nova função de banco de dados SalesUK
, para todos os objetos no esquema Sales
no banco de dados AdventureWorks2022
.
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
Consulte Também
CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL)
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)
sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL)
Criar uma auditoria de servidor e uma especificação de auditoria de servidor