Sonar Configuration PostgreSQL : Différence entre versions

De EjnTricks
(Page créée avec « La première installation de Sonar étudiée est basée sur <code>MySql</code>. Depuis la version <code>7.9</code>, cette base n'est plus supportée... »)
 
m
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 16 : Ligne 16 :
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
Où <code>SONAR_PASSWORD</code> est remplacé par le mot de passe souhaité.
  
 
== [[File:Icon-database-init.png]] Création de la base ==
 
== [[File:Icon-database-init.png]] Création de la base ==
Ligne 23 : Ligne 24 :
 
CREATE DATABASE
 
CREATE DATABASE
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Où <code>SONAR_PASSWORD</code> est remplacé par le mot de passe souhaité.
 
  
 
'''A noter''' que le rôle mis en place, dans ce cas, est le propriétaire de la nouvelle base. Aucune restriction ne sera appliqué à ce compte.
 
'''A noter''' que le rôle mis en place, dans ce cas, est le propriétaire de la nouvelle base. Aucune restriction ne sera appliqué à ce compte.
  
 +
== [[File:Db-backup.png|link=]] Compte backup ==
 +
Dans la cadre de la procédure de backup, le compte <code>backup</code> est utilisé au niveau de <code>PostgreSql</code> comme mentionné au niveau du [[Principe_backup_PostgreSql|principe de backup]]. Il est donc nécessaire de modifier les droits par défaut. L'application se connectant avec le compte <code>sonar</code>, il est donc nécessaire de se connecter à la base <code>sonarqube</code> avec celui-ci.
 +
<div class="console">
 +
# psql -d sonarqube -U sonar -h 127.0.0.1
 +
</div>
 +
 +
<div class="console">
 +
sonarqube=> ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO viewers;
 +
ALTER DEFAULT PRIVILEGES
 +
sonarqube=> GRANT SELECT ON ALL TABLES IN schema public TO viewers;
 +
GRANT
 +
</div>
  
 
== [[File:Icon-Configuration-Settings.png|link=]] Configuration de la base de données ==
 
== [[File:Icon-Configuration-Settings.png|link=]] Configuration de la base de données ==
La dernière étape consiste à référencer ce compte au niveau de Sonar. Pour cela, il faut éditer le fichier <UNZIP_DIRECTORY>/conf/sonar.properties et éditer la section <code>#----- PostgreSQL 9.3 or greater</code> ainsi:
+
La dernière étape consiste à référencer cette base au niveau de <code>Sonar</code>. Pour cela, il faut éditer le fichier <code><UNZIP_DIRECTORY>/conf/sonar.properties</code> et éditer la section <code>#----- PostgreSQL 9.3 or greater</code> ainsi:
 
<syntaxhighlight lang="bash" highlight="16-17">
 
<syntaxhighlight lang="bash" highlight="16-17">
 
#----- Embedded Database (default)
 
#----- Embedded Database (default)
Ligne 51 : Ligne 62 :
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Cela permet d'activer l'utilisation de [[PostgreSql|PostgreSQL]] au lieu de la base Derby embarquée. Il faut ensuite renseigné le compte et le mot de passe utilisé pour se connecter à cette base de données, en reprenant la définition du compte déclaré dans la base
+
Cela permet d'activer l'utilisation de <code>PostgreSql</code> au lieu de la base Derby embarquée. Il faut ensuite renseigné le compte et le mot de passe utilisé pour se connecter à cette base de données, en reprenant la définition du compte déclaré dans la base
 
<syntaxhighlight lang="bash" highlight="4-7">
 
<syntaxhighlight lang="bash" highlight="4-7">
 
# User credentials.
 
# User credentials.

Version actuelle en date du 4 janvier 2021 à 11:56

La première installation de Sonar étudiée est basée sur MySql. Depuis la version 7.9, cette base n'est plus supportée et l'installation a été migrée sous PostgreSQL.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


User-icon.png Création du role PostgreSQL

Un rôle est mis en place spécifiquement pour l'application.

postgres=# CREATE ROLE sonar WITH LOGIN PASSWORD 'SONAR_PASSWORD' NOSUPERUSER NOCREATEDB;
CREATE ROLE

SONAR_PASSWORD est remplacé par le mot de passe souhaité.

Icon-database-init.png Création de la base

Une nouvelle base est créée.

postgres=# CREATE DATABASE sonarqube WITH ENCODING 'UTF8' OWNER sonar;
CREATE DATABASE

A noter que le rôle mis en place, dans ce cas, est le propriétaire de la nouvelle base. Aucune restriction ne sera appliqué à ce compte.

Db-backup.png Compte backup

Dans la cadre de la procédure de backup, le compte backup est utilisé au niveau de PostgreSql comme mentionné au niveau du principe de backup. Il est donc nécessaire de modifier les droits par défaut. L'application se connectant avec le compte sonar, il est donc nécessaire de se connecter à la base sonarqube avec celui-ci.

# psql -d sonarqube -U sonar -h 127.0.0.1
sonarqube=> ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO viewers;
ALTER DEFAULT PRIVILEGES
sonarqube=> GRANT SELECT ON ALL TABLES IN schema public TO viewers;
GRANT

Icon-Configuration-Settings.png Configuration de la base de données

La dernière étape consiste à référencer cette base au niveau de Sonar. Pour cela, il faut éditer le fichier <UNZIP_DIRECTORY>/conf/sonar.properties et éditer la section #----- PostgreSQL 9.3 or greater ainsi:

#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092


#----- Oracle 11g/12c/18c/19c
# The Oracle JDBC driver must be copied into the directory extensions/jdbc-driver/oracle/.
# Only the thin client is supported, and we recommend using the latest Oracle JDBC driver. See
# https://jira.sonarsource.com/browse/SONAR-9758 for more details.
# If you need to set the schema, please refer to http://jira.sonarsource.com/browse/SONAR-5000
#sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/XE


#----- PostgreSQL 9.3 or greater
# By default the schema named "public" is used. It can be overridden with the parameter "currentSchema".
#sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

Cela permet d'activer l'utilisation de PostgreSql au lieu de la base Derby embarquée. Il faut ensuite renseigné le compte et le mot de passe utilisé pour se connecter à cette base de données, en reprenant la définition du compte déclaré dans la base

# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
#sonar.jdbc.username=
#sonar.jdbc.password=
sonar.jdbc.username=sonar
sonar.jdbc.password=SONAR_PASSWORD