Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
Crea un objeto de especificación de auditoría de base de datos mediante la característica SQL Server Audit. Para más información, consulte SQL Server Audit (motor de base de datos).
Convenciones de sintaxis de Transact-SQL
Sintaxis
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
Nombre de la especificación de auditoría.
audit_name
Nombre de la auditoría a la que se aplica esta especificación.
audit_action_specification
Especificación de acciones sobre elementos protegibles por entidades de seguridad que se deben registrar en la auditoría.
action
Nombre de una o varias acciones auditables de nivel de base de datos. Para ver una lista de acciones de auditoría, vea Grupos de acciones y acciones de SQL Server Audit.
audit_action_group_name
Nombre de uno o varios grupos de acciones auditables de nivel de base de datos. Para ver una lista de grupos de acciones de auditoría, vea Grupos de acciones y acciones de SQL Server Audit.
class
Nombre de clase (si procede) en el elemento protegible.
securable
Tabla, vista u otro objeto protegible en la base de datos en la que se va a aplicar la acción de auditoría o el grupo de acciones de auditoría. Para más información, consulte Securables.
principal
Nombre de la entidad de seguridad de base de datos en la que se va a aplicar la acción de auditoría o el grupo de acciones de auditoría. Para auditar todas las entidades de seguridad de base de datos, use la entidad de seguridad de base de datos pública . Para más información, vea Entidades de seguridad (Motor de base de datos).
CON ( ESTADO = { EN | DESACTIVADO } )
Habilita o deshabilita la recopilación de registros por parte de la auditoría para esta especificación de auditoría.
Observaciones
Las especificaciones de auditoría de base de datos son objetos no protegibles que residen en una base de datos determinada. Al crear una especificación de auditoría de base de datos, está en un estado deshabilitado.
Permisos
Los usuarios con el permiso ALTER ANY DATABASE AUDIT pueden crear especificaciones de auditoría de base de datos y enlazarlas a cualquier auditoría.
Una vez creada una especificación de auditoría de base de datos, los usuarios con el CONTROL SERVER permiso o la sysadmin cuenta pueden verlo.
Ejemplos
Los ejemplos de código de este artículo usan la base de datos de ejemplo de AdventureWorks2025 o AdventureWorksDW2025, que puede descargar de la página principal de Ejemplos de Microsoft SQL Server y proyectos de comunidad.
A Operaciones SELECT e INSERT de auditoría en una tabla para cualquier entidad de seguridad de base de datos
En el ejemplo siguiente se crea una auditoría de servidor denominada Payroll_Security_Audit y, a continuación, una especificación de auditoría de base de datos denominada Payroll_Security_Audit que audita SELECT e INSERT instrucciones de cualquier miembro del rol de base de datos pública , para la HumanResources.EmployeePayHistory tabla. Cada usuario se audita, ya que cada usuario siempre es miembro del rol público .
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 cualquier modificación de datos en todos los objetos de un esquema para un rol de base de datos específico
En el ejemplo siguiente se crea una auditoría de servidor denominada DataModification_Security_Audit y, a continuación, una especificación de auditoría de base de datos denominada Audit_Data_Modification_On_All_Sales_Tables que audita INSERTlas instrucciones , UPDATEy DELETE por los usuarios en un nuevo rol SalesUKde base de datos , para todos los objetos del 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
Tareas relacionadas
Especificaciones de auditoría de servidor:
- CREAR ESPECIFICACIÓN DE AUDITORÍA DEL SERVIDOR (Transact-SQL)
- ESPECIFICACIÓN DE AUDITORÍA DE SERVIDORES ALTER (Transact-SQL)
- ESPECIFICACIÓN DE AUDITORÍA DEL SERVIDOR DE DROP (Transact-SQL)
Especificaciones de auditoría de base de datos:
- Crear especificación de auditoría de base de datos (Transact-SQL)
- MODIFICAR LA ESPECIFICACIÓN DE AUDITORÍA DE LA BASE DE DATOS (Transact-SQL)
- ELIMINAR ESPECIFICACIÓN DE AUDITORÍA DE BASE DE DATOS (Transact-SQL)
Vistas de catálogo y DMV:
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- especificaciones_de_auditoría_del_servidor_sys (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.especificaciones_de_auditoría_de_base_de_datos (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL, lenguaje específico de SQL)
Contenido relacionado
- Crear una auditoría de servidor y una especificación de auditoría de servidor
- CREATE SERVER AUDIT (Transact-SQL) (Crear auditoría de servidor en Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- ELIMINAR AUDITORÍA DEL SERVIDOR (Transact-SQL)
- ALTERAR AUTORIZACIÓN (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)