Exemples de l’accès à la base de données du Serveur Dr.Web

Ensuite, vous pouvez trouver les exemples de requêtes SQL à la base de données PostgreSQL. Les requêtes aux autres bases de données peuvent avoir certaines différences résultant des particularités de la base de données et de son utilisation.

Le langage SQL ne permet pas de respecter la hiérarchie de groupes et de postes dans des requêtes.

Pour accéder directement à la base de données

1.Ouvrez le Centre de gestion de votre Serveur Dr.Web.

2.Allez dans la section Administration → Console SQL.

3.Entrez la requête SQL nécessaire. Les exemples des requêtes sont listés ci-après.

4.Cliquez sur Effectuer.

Exemples de requêtes SQL

1.Trouver les postes sur lesquels la version serveur de Windows est installée et les bases virales sont plus anciennes que 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.Trouver les postes ayant dans la section Réseau antivirus → Statistiques → Statut, des entrées avec le taux d’importance Haute ou Maximale.

SELECT
 stations.name Station
FROM
 stations
WHERE
 id IN (
  SELECT
    DISTINCT id
  FROM
     station_status
  WHERE
     severity >= 1342177280
 );

3.Recevoir la correspondance des statuts et du nombre de postes ayant ces statuts.

SELECT
 code Code,
COUNT(code) Num
FROM
 (
  SELECT
    DISTINCT id,
     code
  FROM
     station_status
 ) AS t
GROUP BY
 Code
ORDER BY
 Code;

4.Recevoir 10 menaces les plus répandues détectées du 2019.06.01 au 2019.07.01 sur les postes faisant partie du groupe avec l’identificateur '373a9afb-9c9a-4d4d-b9b1-de817b96bcc5' ou dans un de ses sous-groupes.

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.Recevoir 10 postes les plus infectés.

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.Supprimer l’appartenance de tous les postes des groupes utilisateurs qui ne sont pas primaires pour ces postes.

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.Trouver les objets du réseau antivirus dans lesquels le domaine indiqué est présent dans la liste blanche du composant SpIDer Gate, dans les paramètres personnalisés.

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.Recevoir du Contrôle des événements les événements d’entrée échouée des Administrateurs dans le Centre de gestion avec les codes des erreurs d’authentification.

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.Trouver les postes sous Windows sur lesquels les corrections de sécurité nécessaires ne sont pas installées.

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'
         )
     )
 );