Greenbone Vulnerability Manager  22.4.0~dev1
Macros | Functions
manage_pg.c File Reference

GVM management layer: PostgreSQL specific facilities. More...

#include <strings.h>
#include <assert.h>
#include "sql.h"
#include "manage_sql.h"
#include "manage_utils.h"
#include "manage_acl.h"

Macros

#define G_LOG_DOMAIN   "md manage"
 GLib log domain.
 
#define OVERRIDES_SQL(severity_sql)
 Common overrides SQL for SQL functions. More...
 

Functions

int check_db_extensions ()
 Ensure all extensions are installed. More...
 
void manage_session_init (const char *uuid)
 Setup session. More...
 
void manage_session_set_timezone (const char *zone)
 Setup session timezone. More...
 
int manage_db_empty ()
 Check whether database is empty. More...
 
int manage_cert_db_exists ()
 Check if CERT db exists. More...
 
int manage_scap_db_exists ()
 Check if SCAP db exists. More...
 
void sql_rename_column (const char *old_table, const char *new_table, const char *old_name, const char *new_name)
 Move data from a table to a new table, heeding column rename. More...
 
int manage_create_sql_functions ()
 Create functions. More...
 
void manage_create_result_indexes ()
 Create result indexes.
 
void create_view_vulns ()
 Create or replace the vulns view.
 
void create_tables ()
 Create all tables.
 
void check_db_sequences ()
 Ensure sequences for automatic ids are in a consistent state. More...
 
static gboolean db_extension_available (const char *name)
 Check if an extension is available and can be installed. More...
 
void manage_attach_databases ()
 Attach external databases.
 
void manage_db_remove (const gchar *name)
 Attach external databases. More...
 
int manage_db_init (const gchar *name)
 Init external database. More...
 
int manage_db_add_constraints (const gchar *name)
 Init external database. More...
 
int manage_db_init_indexes (const gchar *name)
 Init external database. More...
 
int manage_cert_loaded ()
 Check whether CERT is available. More...
 
int manage_scap_loaded ()
 Check whether SCAP is available. More...
 

Detailed Description

GVM management layer: PostgreSQL specific facilities.

This file contains the parts of the GVM management layer that need to be coded for each backend. This is the PostgreSQL version.

Macro Definition Documentation

◆ OVERRIDES_SQL

#define OVERRIDES_SQL (   severity_sql)
Value:
" coalesce" \
" ((SELECT overrides.new_severity" \
" FROM overrides" \
" WHERE overrides.result_nvt = results.result_nvt" \
" AND ((overrides.owner IS NULL)" \
" OR (overrides.owner" \
" = gvmd_user ()))" \
" AND ((overrides.end_time = 0)" \
" OR (overrides.end_time >= m_now ()))" \
" AND (overrides.task = results.task" \
" OR overrides.task = 0)" \
" AND (overrides.result = results.id" \
" OR overrides.result = 0)" \
" AND (overrides.hosts is NULL" \
" OR overrides.hosts = ''" \
" OR hosts_contains (overrides.hosts," \
" results.host))" \
" AND (overrides.port is NULL" \
" OR overrides.port = ''" \
" OR overrides.port = results.port)" \
" AND severity_matches_ov" \
" (" severity_sql ", overrides.severity)" \
" ORDER BY overrides.result DESC," \
" overrides.task DESC," \
" overrides.port DESC," \
" overrides.severity ASC," \
" overrides.creation_time DESC" \
" LIMIT 1)," \
" " severity_sql ")"

Common overrides SQL for SQL functions.

Function Documentation

◆ check_db_extensions()

int check_db_extensions ( )

Ensure all extensions are installed.

Returns
0 success, 1 extension missing.

◆ check_db_sequences()

void check_db_sequences ( )

Ensure sequences for automatic ids are in a consistent state.

Caller must organise a transaction.

◆ db_extension_available()

static gboolean db_extension_available ( const char *  name)
static

Check if an extension is available and can be installed.

Parameters
[in]nameName of the extension to check.
Returns
TRUE extension is available, FALSE otherwise.

◆ manage_cert_db_exists()

int manage_cert_db_exists ( )

Check if CERT db exists.

Returns
1 if exists, else 0.

◆ manage_cert_loaded()

int manage_cert_loaded ( )

Check whether CERT is available.

Returns
1 if CERT database is loaded, else 0.

◆ manage_create_sql_functions()

int manage_create_sql_functions ( )

Create functions.

Returns
0 success, -1 error.

◆ manage_db_add_constraints()

int manage_db_add_constraints ( const gchar *  name)

Init external database.

Parameters
[in]nameName. Currently only "scap".
Returns
0 success, -1 error.

◆ manage_db_empty()

int manage_db_empty ( )

Check whether database is empty.

Returns
1 if empty, else 0.

◆ manage_db_init()

int manage_db_init ( const gchar *  name)

Init external database.

Parameters
[in]nameName. "cert" or "scap".
Returns
0 success, -1 error.

◆ manage_db_init_indexes()

int manage_db_init_indexes ( const gchar *  name)

Init external database.

Parameters
[in]nameName. Currently only "scap".
Returns
0 success, -1 error.

◆ manage_db_remove()

void manage_db_remove ( const gchar *  name)

Attach external databases.

Parameters
[in]nameDatabase name.

◆ manage_scap_db_exists()

int manage_scap_db_exists ( )

Check if SCAP db exists.

Returns
1 if exists, else 0.

◆ manage_scap_loaded()

int manage_scap_loaded ( )

Check whether SCAP is available.

Returns
1 if SCAP database is loaded, else 0.

◆ manage_session_init()

void manage_session_init ( const char *  uuid)

Setup session.

Parameters
[in]uuidUser UUID.

◆ manage_session_set_timezone()

void manage_session_set_timezone ( const char *  zone)

Setup session timezone.

Parameters
[in]zoneTimezone.

◆ sql_rename_column()

void sql_rename_column ( const char *  old_table,
const char *  new_table,
const char *  old_name,
const char *  new_name 
)

Move data from a table to a new table, heeding column rename.

Parameters
[in]old_tableExisting table.
[in]new_tableNew empty table with renamed column.
[in]old_nameName of column in old table.
[in]new_nameName of column in new table.