Support Forum
The Forums are a place to find answers on a range of Fortinet products from peers and product experts.
RebecaGoncalves
New Contributor

JDBC events are not received from MSSQL DB.

Por favor si pueden ayudarme en este caso.

 

Fortisiem no recopila eventos que ocurren dentro del administrador de base de datos, sino eventos relacionados con Windows. 

Configuramos todo del lado de SQL Server: creamos el usuario, las tablas, los triggers, las audorias. Y podemos visualizar los eventos relacionados con la auditoría desde el gestor de base de datos pero no desde Fortisiem. ¿Qué podría faltar?

 

Anexo parte de la configuración: 

 

1. Configuración de la auditoría de inicio de sesión mediante SQL Server Management Studio:

 Habilitar el seguimiento de auditoría C2.

g1.png

2. Creación de la base de datos PH_Events y las tablas dbo.DDLEvents y dbo.LogonEvents con los siguientes Scripts:

CREAR TABLA PH_Events.dbo.DDLEvents

(

    Evento XML XML,

    Nombre de la base de datos VARCHAR(MAX),

    EventTime FECHA Y HORA PREDETERMINADA (GETDATE()),

    Tipo de evento VARCHAR(MAX),

    SPID VARCHAR(MÁXIMO),

    Nombre del servidor VARCHAR(MAX),

    Nombre de inicio de sesión VARCHAR(MAX),

    NombreObjeto VARCHAR(MAX),

    Tipo de objeto VARCHAR(MAX),

    Nombre del esquema VARCHAR(MAX),

    Texto de comando NVARCHAR(MAX)

)

 

IR

CREAR TABLA PH_Events.dbo.LogonEvents

(

    Evento XML XML,

    Fecha y hora del evento,

    Tipo de evento VARCHAR(MAX),

    SPID VARCHAR(MÁXIMO),

    Nombre del servidor VARCHAR(MAX),

    Nombre de inicio de sesión VARCHAR(MAX),

    Tipo de inicio de sesión VARCHAR(MAX),

    SID VARCHAR(MÁXIMO),

    Nombre de host VARCHAR(MAX),

    Se agrupa VARCHAR(MAX),

    Nombre de la aplicación VARCHAR(MAX)

)

3. Creación del usuario y su rol con el siguiente Script:

UTILIZAR PH_Events

IR

CREAR USUARIO [AOPerfLogin] PARA INICIAR SESIÓN [AOPerfLogin]

IR

ALTERAR ROL [db_owner] AGREGAR MIEMBRO [AOPerfLogin]

IR

 

4.  Creación de los triggers con los siguientes Scripts:

Gatillo I.-

USO maestro;

IR

CREAR DISPARADOR PH_Database_Level_Events en BASE DE DATOS

PARA EVENTOS DE NIVEL DE BASE DE DATOS DDL

COMO

DECLARA @eventData COMO XML;

ESTABLECER @eventData = EVENTDATA();

INSERTAR EN PH_Events.dbo.DDLEvents(EventTime, EventType, SPID, ServerName, LoginName, ObjectName, ObjectType, SchemaName, DatabaseName, CommandText, XMLEvent)

VALORES(cast(@eventData.query('data(//PostTime)') como varchar(MAX)),

       cast(@eventData.query('data(//EventType)') como varchar(MAX)),

           convertir(@eventData.query('data(//SPID)') como varchar(MAX)),

           cast(@eventData.query('data(//ServerName)') como varchar(MAX)),

       cast(@eventData.query('data(//NombreDeInicioDeSesión)') como varchar(MAX)),

       cast(@eventData.query('data(//ObjectName)') como varchar(MAX)),

           convertir(@eventData.query('data(//ObjectType)') como varchar(MAX)),

           cast(@eventData.query('data(//SchemaName)') como varchar(MAX)),

           cast(@eventData.query('data(//NombreDeBaseDeDatos)') como varchar(MAX)),

           cast(@eventData.query('datos(//TSQLCommand/CommandText)') COMO NVARCHAR(MAX)),

       @datosdeeventos

);

IR

 

Gatillo II.-

USO maestro;

IR

CREAR DISPARADOR PH_DDL_Eventos_de_Nivel_de_Servidor

EN TODOS LOS SERVIDORES

PARA EVENTOS DE PUNTO FINAL DDL, EVENTOS DE INICIO DE SESIÓN DDL, EVENTOS DE SERVIDOR GDR DDL, EVENTOS DE SERVIDOR DE AUTORIZACIÓN DDL,

CREAR_BASE_DE_DATOS, MODIFICAR_BASE_DE_DATOS, ELIMINAR_BASE_DE_DATOS, CONCEDER_BASE_DE_DATOS, DENEGAR_BASE_DE_DATOS, REVOCAR_BASE_DE_DATOS

COMO

DECLARA @eventData COMO XML;

ESTABLECER @eventData = EVENTDATA();

insertar en PH_Events.dbo.DDLEvents(EventTime, EventType, SPID, ServerName, LoginName, ObjectName, ObjectType, SchemaName, DatabaseName, CommandText, XMLEvent)

valores(cast(@eventData.query('data(//PostTime)') como varchar(MAX)),

       cast(@eventData.query('data(//EventType)') como varchar(MAX)),

       convertir(@eventData.query('data(//SPID)') como varchar(MAX)),

       cast(@eventData.query('data(//ServerName)') como varchar(MAX)),

       cast(@eventData.query('data(//NombreDeInicioDeSesión)') como varchar(MAX)),

       cast(@eventData.query('data(//ObjectName)') como varchar(MAX)),

       convertir(@eventData.query('data(//ObjectType)') como varchar(MAX)),

       cast(@eventData.query('data(//SchemaName)') como varchar(MAX)),

       cast(@eventData.query('data(//NombreDeBaseDeDatos)') como varchar(MAX)),

       cast(@eventData.query('datos(//TSQLCommand/CommandText)') COMO NVARCHAR(MAX)),

       /** NOMBRE_BD(),**/

       @eventData);

IR

 

Gatillo III.-

Utilice master;

IR

CREAR DISPARADOR PH_LoginEvents EN TODOS LOS SERVIDORES

CON EJECUTAR COMO YO PARA INICIAR SESIÓN

COMO

COMENZAR

DECLARAR @evento XML

ESTABLECER @evento = EVENTDATA()

INSERTAR EN PH_Events.dbo.LogonEvents(HoraDeEvento,TipoDeEvento,SPID,NombreDeServidor,NombreDeInicioDeSesión,TipoDeInicioDeSesión,SID,NombreDeHost,IsPooled,NombreDeAplicación,XMLEvent)

VALORES(CAST(CAST(@event.query('/EVENT_INSTANCE/PostTime/text()') COMO VARCHAR(64)) COMO FECHAHORA),

CONVERTIR(@event.query('/EVENT_INSTANCE/EventType/text()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/SPID/text()') COMO VARCHAR(128)),

CAST(@event.query('/EVENT_INSTANCE/ServerName/text()') COMO VARCHAR(128)),

CAST(@event.query('/EVENT_INSTANCE/NombreDeInicioDeSesión/texto()') COMO VARCHAR(128)),

CAST(@event.query('/EVENT_INSTANCE/TipoDeInicioDeSesión/texto()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/SID/text()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/ClientHost/text()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/IsPooled/text()') COMO VARCHAR(128)),

NOMBRE_DE_LA_APLICACIÓN(),

@evento)

FIN;

 

5. Creación de auditorías y propiedades de especificación de auditorías de servidor dentro de SQL Server Management Studio.

 

 

g.png

 

g2.png

Agradecería mucho su ayuda.

2 REPLIES 2
AlexC-FTNT
Staff
Staff

I fail to see the connection to FortiGate here. How is this related?


- Toss a 'Like' to your fixxer, oh Valley of Plenty! and chose the solution, too00oo -
RebecaGoncalves

We want to view the events in the Fortisiem related to the databases, not the FortiGate.

Announcements

Select Forum Responses to become Knowledge Articles!

Select the “Nominate to Knowledge Base” button to recommend a forum post to become a knowledge article.

Labels
Top Kudoed Authors