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