Пример SQL-запроса, созданного с помощью утилиты klsql2

В этом разделе приведен пример SQL-запроса, выполненного с помощью утилиты klsql2.

Следующие примеры показывают, как получить список событий, зарегистрированных на устройствах пользователей за последние 7 дней, и отсортировать их по времени возникновения. Сначала отображаются самые последние события.

Пример для Microsoft SQL Server:

SELECT

/* идентификатор события */

e.nId,

 

/* время возникновения события */

e.tmRiseTime,

 

/* внутреннее имя типа события */

e.strEventType,

 

/* отображаемое имя события */

e.wstrEventTypeDisplayName,

 

/* отображаемое описание события */

e.wstrDescription,

 

/* имя группы, в которую входит устройство */

e.wstrGroupName,

 

/* отображаемое имя устройства, на котором произошло событие */

h.wstrDisplayName,

CAST(((h.nIp / 16777216) & 255) AS varchar(4)) + '.' +

CAST(((h.nIp / 65536) & 255) AS varchar(4)) + '.' +

CAST(((h.nIp / 256) & 255) AS varchar(4)) + '.' +

 

/* IP-адрес устройства, на котором произошло событие */

CAST(((h.nIp) & 255) AS varchar(4)) as strIp

FROM v_akpub_ev_event e

INNER JOIN v_akpub_host h ON h.nId=e.nHostId

WHERE e.tmRiseTime>=DATEADD(Day, -7, GETUTCDATE())

ORDER BY e.tmRiseTime DESC

Пример для PostgreSQL:

SELECT

/* идентификатор события */

"e"."nId",

 

/* время возникновения события */

"e"."tmRiseTime",

 

/* внутреннее имя типа события */

"e"."strEventType",

 

/* отображаемое имя события */

"e"."wstrEventTypeDisplayName",

 

/* отображаемое описание события */

"e"."wstrDescription",

 

/* отображаемое описание события */

"e"."wstrGroupName",

 

/* отображаемое имя устройства, на котором произошло событие */

"h"."wstrDisplayName",

(

CAST((("h"."nIp" / 16777216 )& 255 ) AS VARCHAR(4)) || '.' ||

CAST((("h"."nIp" / 65536 )& 255 ) AS VARCHAR(4)) || '.' ||

CAST((("h"."nIp" / 256 )& 255 ) AS VARCHAR(4)) || '.' ||

/* IP-адрес устройства, на котором произошло событие */

CAST((("h"."nIp" )& 255 ) AS VARCHAR(4))

) AS "strIp"

FROM "v_akpub_ev_event" AS "e"

INNER JOIN "v_akpub_host" AS "h" ON "h"."nId" = "e"."nHostId"

WHERE "e"."tmRiseTime" >= NOW() AT TIME ZONE 'utc' + make_interval(days => CAST(-7 AS INT))

ORDER BY "e"."tmRiseTime" DESC ;

Пример для MySQL или MariaDB:

SELECT

/* идентификатор события */

`e`.`nId`,

 

/* время возникновения события */

`e`.`tmRiseTime`,

 

/* внутреннее имя типа события */

`e`.`strEventType`,

 

/* отображаемое имя события */

`e`.`wstrEventTypeDisplayName`,

 

/* отображаемое описание события */

`e`.`wstrDescription`,

 

/* имя группы устройств */

`e`.`wstrGroupName`,

 

/* отображаемое имя устройства, на котором произошло событие */

`h`.`wstrDisplayName`,

CONCAT(

LEFT(CAST(((`h`.`nIp` DIV 1677721) & 255) AS CHAR), 4), '.',

LEFT(CAST(((`h`.`nIp` DIV 65536) & 255) AS CHAR), 4), '.',

LEFT(CAST(((`h`.`nIp` DIV 256) & 255) AS CHAR), 4), '.',

/* IP-адрес устройства, на котором произошло событие */

LEFT(CAST(((`h`.`nIp`) & 255) AS CHAR), 4)

) AS `strIp`

FROM `v_akpub_ev_event` AS `e`

INNER JOIN `v_akpub_host` AS `h` ON `h`.`nId` = `e`.`nHostId`

WHERE `e`.`tmRiseTime` >= ADDDATE( UTC_TIMESTAMP( ) , INTERVAL -7 DAY)

ORDER BY `e`.`tmRiseTime` DESC ;

См. также:

Настройка экспорта событий в SIEM-системы

В начало