Los siguientes son ejemplos de consultas SQL contra una base de datos PostgreSQL. Las consultas a otras bases de datos pueden contener algunas diferencias debido a las peculiaridades de la propia base de datos y las complejidades de su uso.
|
Las capacidades del lenguaje SQL no permiten tener en cuenta la jerarquía de grupos y estaciones en las solicitudes.
|
Para acceder a la base de datos directamente
1.Abra el Centro de Control de su Servidor Dr.Web. 2.Vaya a la sección Administración → Consola SQL. 3.Ingrese la consulta SQL requerida. A continuación se ofrecen ejemplos de consultas. 4.Haga clic en el botón Ejecutar. Ejemplos de consultas SQL
1.Busque estaciones en las que esté instalada la versión de servidor de Windows y en las que las bases de datos de virus sean anteriores a 2019.07.04-00:00:00 UTC (12.0).
SELECT
stations.name Station,
groups_list.name OS,
station_products.crev Bases
FROM
stations
INNER JOIN groups_list ON groups_list.platform =(
CAST(stations.lastos AS INTEGER) & ~15728640
)
AND (
(
CAST(stations.lastos AS INTEGER) & 2130706560
) = 33554560
)
INNER JOIN station_products ON station_products.id = stations.id
AND station_products.product = '10-drwbases'
AND station_products.crev < 12020190704000000;
|
2.Encuentra estaciones que tengan en la sección Red Antivirus → Estadísticas → Estado registros con nivel Alta o Máxima.
SELECT
stations.name Station
FROM
stations
WHERE
id IN (
SELECT
DISTINCT id
FROM
station_status
WHERE
severity >= 1342177280
);
|
3.Obtener la correspondencia de los estados y el número de estaciones con estos estados.
SELECT
code Code,
COUNT(code) Num
FROM
(
SELECT
DISTINCT id,
code
FROM
station_status
) AS t
GROUP BY
Code
ORDER BY
Code;
|
4.Obtenga las 10 amenazas más populares detectadas desde 2019.06.01 hasta 2019.07.01 en estaciones que pertenecen al grupo con el identificador '373a9afb-9c9a-4d4d-b9b1-de817b96bcc5' o cualquier grupo anidado en él.
SELECT
cat_virus.str Threat,
COUNT(cat_virus.str) Num
FROM
station_infection
INNER JOIN cat_virus ON cat_virus.id = station_infection.virus
WHERE
station_infection.infectiontime BETWEEN 20190601000000000
AND 20190701000000000
AND station_infection.id IN (
SELECT
sid
FROM
station_groups
WHERE
gid = '373a9afb-9c9a-4d4d-b9b1-de817b96bcc5'
OR gid IN (
SELECT
child
FROM
group_children
WHERE
id = '373a9afb-9c9a-4d4d-b9b1-de817b96bcc5'
)
)
GROUP BY
cat_virus.str
ORDER BY
Num DESC
LIMIT
10;
|
5.Obtener las 10 estaciones más infectadas.
SELECT
Station,
Grp,
Num
FROM
(
SELECT
stations.id,
groups_list.id,
stations.name Station,
groups_list.name Grp,
COUNT(stations.id) Num
FROM
station_infection
INNER JOIN stations ON station_infection.id = stations.id
INNER JOIN groups_list ON groups_list.id = stations.gid
GROUP BY
stations.id,
groups_list.id,
stations.name,
groups_list.name
ORDER BY
Num DESC
LIMIT
10
) AS t;
|
6.Eliminar la membresía de todas las estaciones de los grupos de usuarios que no son primarios para estas estaciones.
DELETE FROM
station_groups;
INSERT INTO station_groups(sid, gid)
SELECT
stations.id,
groups_list.id
FROM
stations
INNER JOIN groups_list ON stations.gid = groups_list.id
AND groups_list.type NOT IN(1, 4);
|
7.Buscar los objetos de red antivirus en los que el dominio especificado está presente en la lista blanca del componente de la puerta del SpIDer en la configuración personal.
SELECT
stations.name Station
FROM
station_cfg
INNER JOIN stations ON stations.id = station_cfg.id
WHERE
station_cfg.component = 38
AND station_cfg.name = 'WhiteVirUrlList'
AND station_cfg.value = 'domain.tld';
SELECT
groups_list.name Grp
FROM
group_cfg
INNER JOIN groups_list ON groups_list.id = group_cfg.id
WHERE
group_cfg.component = 38
AND group_cfg.name = 'WhiteVirUrlList'
AND group_cfg.value = 'domain.tld';
SELECT
policy_list.name Policy
FROM
policy_cfg
INNER JOIN policy_list ON policy_list.id = policy_cfg.id
WHERE
policy_cfg.component = 38
AND policy_cfg.name = 'WhiteVirUrlList'
AND policy_cfg.value = 'domain.tld';
|
8.Recuperar eventos de la auditoría para inicios de sesión fallidos de administradores en el Centro de Control con los códigos de error de autorización correspondientes.
SELECT
admin_activity.login Login,
admin_activity.address Address,
activity_data.value ErrorCode,
admin_activity.createtime EventTimestamp
FROM
admin_activity
INNER JOIN activity_data ON admin_activity.record = activity_data.record
WHERE
admin_activity.oper = 10100
AND admin_activity.status != 1
AND activity_data.item = 'Error';
|
9.Buscar estaciones de Windows que no tengan instaladas las correcciones de seguridad necesarias.
SELECT
stations.name Station
FROM
stations
WHERE
id NOT IN (
SELECT
station_env_kb.id
FROM
station_env_kb
INNER JOIN stations ON stations.id = station_env_kb.id
WHERE
(
CAST(stations.lastos AS INTEGER) & 2130706432
)= 33554432
AND station_env_kb.name IN (
SELECT
id
FROM
env_strings
WHERE
str IN(
'KB4012212', 'KB4012213', 'KB4012214',
'KB4012215', 'KB4012216', 'KB4012217',
'KB4012598'
)
)
);
|
|