Partilhar via


ALTER SERVER AUDIT (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Altera um objeto de auditoria do servidor usando o recurso 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

ALTER SERVER AUDIT audit_name  
{  
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } | URL]  
    [ WITH ( <audit_options> [ , ...n] ) ]   
    [ WHERE <predicate_expression> ]  
}  
| REMOVE WHERE  
| MODIFY NAME = new_audit_name  
[ ; ]  
  
<file_options>::=  
{  
      FILEPATH = 'os_file_path'   
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED }   
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED }   
    | MAX_FILES = integer   
    | RESERVE_DISK_SPACE = { ON | OFF }   
}  
  
<audit_options>::=  
{  
      QUEUE_DELAY = integer   
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION }   
    | STATE = = { ON | OFF }   
}  
  
<predicate_expression>::=  
{  
    [NOT ] <predicate_factor>   
    [ { AND | OR } [NOT ] { <predicate_factor> } ]   
    [,...n ]  
}  
  
<predicate_factor>::=   
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }  

Argumentos

TO { FILE | APPLICATION_LOG | SECURITY |URL}
Determina o local do destino da auditoria. As opções são um arquivo binário, o log de aplicativos do Windows ou o log de segurança do Windows.

Importante

Na Instância Gerenciada de SQL do Azure, a Auditoria do SQL funciona no nível de servidor e armazena arquivos .xel no Armazenamento de Blobs do Azure.

FILEPATH = 'os_file_path'
O caminho da trilha de auditoria. O nome do arquivo é gerado com base no nome da auditoria e no GUID da auditoria.

MAXSIZE =max_size
Especifica o tamanho máximo até o qual o arquivo de auditoria pode crescer. O valor de max_size deve ser um inteiro seguido de MB, GB, TB ou UNLIMITED. O tamanho mínimo que você pode especificar para max_size é 2 MB e o máximo é 2.147.483.647 TB. Quando UNLIMITED for especificado, o arquivo aumentará até que o disco esteja cheio. Especificar um valor inferior a 2 MB gera o erro MSG_MAXSIZE_TOO_SMALL. O valor padrão é UNLIMITED.

MAX_ROLLOVER_FILES =integer | UNLIMITED
Especifica o número máximo de arquivos a serem retidos no sistema de arquivos. Ao configurar MAX_ROLLOVER_FILES=0 não haverá nenhum limite ao número de arquivos de substituição a serem criados. O valor padrão é 0. O número máximo de arquivos que pode ser especificado é 2.147.483.647.

MAX_FILES =integer
Especifica o número máximo de arquivos de auditoria que pode ser criado. Não substitui o primeiro arquivo quando o limite é atingido. Quando o limite de MAX_FILES é atingido, qualquer ação que provoque eventos de auditoria adicionais falhará com um erro.
Aplica-se a: SQL Server 2012 (11.x) e posterior.

RESERVE_DISK_SPACE = { ON | OFF }
Essa opção pré-aloca o arquivo no disco para o valor MAXSIZE. Só será aplicável se MAXSIZE não for igual a UNLIMITED. O valor padrão é OFF.

QUEUE_DELAY =integer
Determina a hora, em milissegundos, que pode decorrer antes que o processamento das ações de auditoria seja forçado. Um valor 0 indica entrega síncrona. O valor mínimo de atraso de consulta configurável é 1000 (1 segundo), que é o padrão. O máximo é 2.147.483.647 (2.147.483.647 segundos ou 24 dias, 20 horas, 31 minutos, 23.647 segundos). A especificação de um número inválido gera o erro MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
Indica se a instância que grava no destino deverá falhar, continuar ou parar se o SQL Server não puder gravar no log de auditoria.

CONTINUE
SQL Server As operações continuam. Os registros de auditoria não são retidos. A auditoria continua tentando registrar eventos em log e retoma se a condição de falha é resolvida. A seleção da opção Continuar pode permitir atividades não auditadas, o que pode violar as políticas de segurança. Use essa opção, quando continuar a operação do Mecanismo de Banco de Dados é mais importante do que manter uma auditoria completa.

SHUTDOWN
Força a instância de SQL Server a ser desligada, caso o SQL Server não possa gravar dados no destino de auditoria por qualquer motivo. O logon que executa a instrução ALTER deve ter a permissão SHUTDOWN no SQL Server. O comportamento de desligamento persiste mesmo se a permissão SHUTDOWN é revogada posteriormente do logon em execução. Se o usuário não tiver essa permissão, a instrução falhará e a auditoria não será modificada. Use a opção quando uma falha de auditoria puder comprometer a segurança ou a integridade do sistema. Para obter mais informações, consulte SHUTDOWN.

FAIL_OPERATION
Haverá falha nas ações do banco de dados se elas provocarem eventos auditados. As ações que não causam eventos auditados podem continuar, mas nenhum evento auditado pode ocorrer. A auditoria continua tentando registrar eventos em log e retoma se a condição de falha é resolvida. Use essa opção, quando manter uma auditoria completa for mais importante do que o acesso total ao Mecanismo de Banco de Dados.
Aplica-se a: SQL Server 2012 (11.x) e posterior.

STATE = { ON | OFF }
Permite ou não que a auditoria colete registros. A alteração do estado de uma auditoria em execução (de ON para OFF) cria uma entrada de auditoria indicando que a auditoria foi interrompida, a entidade que interrompeu a auditoria e a hora da interrupção.

MODIFY NAME = new_audit_name
Altera o nome da auditoria. Não pode ser usado com nenhuma outra opção.

predicate_expression
Especifica a expressão de predicado usada para determinar se um evento deve ser processado ou não. As expressões de predicado são limitadas a 3.000 caracteres, o que limita os argumentos de cadeia de caracteres.
Aplica-se a: SQL Server 2012 (11.x) e posterior.

event_field_name
É o nome do campo de evento que identifica a origem do predicado. Campos de auditoria são descritos em sys.fn_get_audit_file (Transact-SQL). Todos os campos podem ser auditados menos file_name e audit_file_offset.
Aplica-se a: SQL Server 2012 (11.x) e posterior.

número
É qualquer tipo numérico, incluindo decimal. Limitações são a falta de memória física disponível ou um número que é muito grande para ser representado como um inteiro de 64 bits.
Aplica-se a: SQL Server 2012 (11.x) e posterior.

' string '
Uma cadeia de caracteres ANSI ou Unicode, conforme requerido pela comparação de predicado. Nenhuma conversão de tipo de cadeia de caracteres implícita é executada para as funções de comparação de predicado. A transferência do tipo incorreto resulta em um erro.
Aplica-se a: SQL Server 2012 (11.x) e posterior.

Comentários

Você deve especificar pelo menos uma das cláusulas TO, WITH ou MODIFY NAME ao chamar ALTER AUDIT.

Você deve definir o estado de uma auditoria para a opção OFF para fazer alterações em uma auditoria. Se ALTER AUDIT for executada quando uma auditoria estiver habilitada com qualquer opção diferente de STATE=OFF, você receberá uma mensagem de erro MSG_NEED_AUDIT_DISABLED.

Você pode adicionar, alterar e remover especificações de auditoria sem parar uma auditoria.

Não é possível alterar o GUID de uma auditoria após a criação da auditoria.

A instrução ALTER SERVER AUDIT não pode ser usada dentro de uma transação de usuário.

Permissões

Para criar, alterar ou descartar uma entidade de auditoria de servidor, você deve ter a permissão ALTER ANY SERVER AUDIT ou CONTROL SERVER.

Exemplos

a. Alterando o nome de uma auditoria de servidor

O exemplo a seguir altera o nome da auditoria de servidor HIPAA_Audit para HIPAA_Audit_Old.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
MODIFY NAME = HIPAA_Audit_Old;  
GO  
ALTER SERVER AUDIT HIPAA_Audit_Old  
WITH (STATE = ON);  
GO  

B. Alterando o destino de uma auditoria de servidor

O exemplo a seguir altera a auditoria de servidor denominada HIPAA_Audit para um destino de arquivo.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
TO FILE (FILEPATH ='\\SQLPROD_1\Audit\',  
          MAXSIZE = 1000 MB,  
          RESERVE_DISK_SPACE=OFF)  
WITH (QUEUE_DELAY = 1000,  
       ON_FAILURE = CONTINUE);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = ON);  
GO  

C. Alterando uma cláusula WHERE de auditoria de servidor

O exemplo a seguir modifica a cláusula where criada no exemplo C de CREATE SERVER AUDIT (Transact-SQL). A nova cláusula WHERE filtra o evento definido pelo usuário se de 27.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
WHERE user_defined_event_id = 27;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

D. Removendo uma cláusula WHERE

O exemplo a seguir remove uma expressão de predicado de cláusula WHERE.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
REMOVE WHERE;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

E. Renomeando uma auditoria de servidor

O exemplo a seguir altera o nome da auditoria de servidor de FilterForSensitiveData para AuditDataAccess.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
MODIFY NAME = AuditDataAccess;  
GO  
ALTER SERVER AUDIT [AuditDataAccess] WITH (STATE = ON);  
GO  

Consulte Também

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