Skip to content

Commit

Permalink
Mise à jour en version 9.3.21
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Feb 18, 2018
1 parent 98ef3d3 commit 9d7c269
Show file tree
Hide file tree
Showing 11 changed files with 746 additions and 161 deletions.
5 changes: 4 additions & 1 deletion postgresql/contrib-spi.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@

<para>
Le module <application>spi</application> fournit plusieurs exemples
fonctionnels d'utilisation de SPI et des déclencheurs. Bien que ces fonctions aient un
fonctionnels d'utilisation de l'<link linkend="spi">interface de
programmation du serveur (<foreignphrase>Server Programming
Interface</foreignphrase>)</link> (<acronym>SPI</acronym>) et des
déclencheurs. Bien que ces fonctions aient un
intérêt certain, elles sont encore plus utiles en tant qu'exemples
à modifier pour atteindre ses propres buts. Les fonctions sont suffisamment
généralistes pour être utilisées avec une table quelconque, mais la création d'un
Expand Down
6 changes: 3 additions & 3 deletions postgresql/legal.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@
par $Author$
révision $Revision$ -->

<date>2017</date>
<date>2018</date>

<copyright>
<year>1996-2017</year>
<year>1996-2018</year>
<holder>The PostgreSQL Global Development Group</holder>
</copyright>

<legalnotice id="legalnotice">
<title>Legal Notice</title>

<para>
<productname>PostgreSQL</productname> is Copyright &copy; 1996-2017
<productname>PostgreSQL</productname> is Copyright &copy; 1996-2018
by the PostgreSQL Global Development Group.
</para>

Expand Down
90 changes: 53 additions & 37 deletions postgresql/libpq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6638,21 +6638,40 @@ ldap://ldap.masociété.com/dc=masociété,dc=com?uniqueMember?one?(cn=mabase)
du serveur. Cela signifie qu'il est possible de se faire passer pour le
serveur final (par exemple en modifiant un enregistrement DNS ou en prenant
l'adresse IP du serveur) sans que le client ne le sache. Pour empêcher ceci,
la vérification du certificat <acronym>SSL</acronym> doit être activée.
le client doit être capable de vérifier l'identité du serveur via une
chaîne de confiance. Une chaîne de confiance est établie en plaçant le
certificat racine auto-signé d'une autorité de certificats
(<acronym>CA</acronym>) sur un ordinateur et un certificat feuille
<emphasis>signé</emphasis> par le certificat racine sur un autre
ordinateur. Il est aussi possible d'utiliser un certificat
<quote>intermédiaire</quote> signé par le certificat racine et qui signe
des certificats feuilles.
</para>

<para>
Si le paramètre <literal>sslmode</literal> est configuré à
<literal>verify-ca</literal>, libpq vérifiera que le serveur est de confiance
en vérifiant que le certificat a bien été généré par une autorité de
certificats (<acronym>CA</acronym>)
de confiance. Si <literal>sslmode</literal> est configuré à
<literal>verify-full</literal>, libpq vérifiera <emphasis>aussi</emphasis>
que le nom du serveur correspond à son certificat. La connexion SSL
échouera si le certificat du serveur n'établit pas ces correspondances. La
connexion SSL échouera si le certificat du serveur ne peut pas être vérifié.
<literal>verify-full</literal> est recommandé pour les environnements les
plus sensibles à la sécurité.
Pour permettre au client de vérifier l'identité du serveur, placez un
certificat racine sur le client et un certificat feuille signé par le
certificat racine sur le serveur. Pour permettre au serveur de vérifier
l'identité du client, placez un certificat racine sur le serveur et un
certificat feuille signé par le certificat racine sur le client. Un ou
plusieurs certificats intermédiaires (habituellement stockés avec le
certificat feuille) peuvent aussi être utilisés pour lier le certificat
feuille au certificat racine.
</para>

<para>
Une fois qu'une chaîne de confiance a été établie, il existe deux façons
pour le client de valider le certificat feuille envoyé par le serveur. Si
le paramètre <literal>sslmode</literal> est configuré à <literal>verify-
ca</literal>, libpq vérifiera que le serveur est de confiance en vérifiant
la chaîne de certificats jusqu'au certificat racine stocké sur le client.
Si <literal>sslmode</literal> est configuré à <literal>verify-
full</literal>, libpq va <emphasis>aussi</emphasis> vérifier que le nom
d'hôte du serveur correspond au nom stocké dans le certificat du serveur.
La connexion SSL échouera si le certificat du serveur n'établit pas ces
correspondances. La connexion SSL échouera si le certificat du serveur ne
peut pas être vérifié. <literal>verify-full</literal> est recommandé pour
les environnements les plus sensibles à la sécurité.
</para>

<para>
Expand All @@ -6667,11 +6686,14 @@ ldap://ldap.masociété.com/dc=masociété,dc=com?uniqueMember?one?(cn=mabase)
</para>

<para>
Pour permettre la vérification du certificat du serveur, le certificat d'un
ou plusieurs <acronym>CA</acronym> de confiance doit être placé dans le fichier
<filename>~/.postgresql/root.crt</filename> dans le répertoire personnel de
l'utilisateur. Su Microsoft Windows, le fichier est nommé
<filename>%APPDATA%\postgresql\root.crt</filename>.
Pour permettre la vérification du certificat du serveur, un ou plusieurs
certificats racines doivent être placés dans le fichier
<filename>~/.postgresql/root.crt</filename> du répertoire personnel de
l'utilisateur (sur Windows, le fichier est nommé
<filename>%APPDATA%\postgresql\root.crt</filename>). Les certificats
intermédiaires doivent aussi être ajoutés au fichier s'ils sont nécessaires
pour lier la chaîne de certificat envoyée par le serveur aux certificats
racines stockés sur le client.
</para>

<para>
Expand Down Expand Up @@ -6708,11 +6730,12 @@ ldap://ldap.masociété.com/dc=masociété,dc=com?uniqueMember?one?(cn=mabase)
<title>Certificats des clients</title>

<para>
Si le serveur réclame un certificat de confiance du client,
<application>libpq</application> enverra le certificat stocké dans le
fichier <filename>~/.postgresql/postgresql.crt</filename> du répertoire
personnel de l'utilisateur. Le certificat doit être signé par une des
autorités (<acronym>CA</acronym>) de confiance du serveur. Un fichier de
Si le serveur tente de vérifier l'identité du client en réclamant le
certificat feuille du client, <application>libpq</application> enverra le
certificat stocké dans le fichier
<filename>~/.postgresql/postgresql.crt</filename> du répertoire personnel
de l'utilisateur. Les certificats doivent chaîner vers le certificat racine
de confiance du serveur. Un fichier de
clé privé correspondant <filename>~/.postgresql/postgresql.key</filename>
doit aussi être présent. Le fichier de clé privée ne doit pas permettre son
accès pour le groupe ou pour le reste du monde&nbsp;; cela se fait avec la
Expand All @@ -6728,24 +6751,17 @@ ldap://ldap.masociété.com/dc=masociété,dc=com?uniqueMember?one?(cn=mabase)
</para>

<para>
Dans certains cas, le certificat du client peut être signé par une autorité
de certificat <quote>intermédiaire</quote>, plutôt que par un qui est
directement accepté par le serveur. Pour utiliser un tel certificat,
ajoutez le certificat de l'autorité signataire du fichier
<filename>postgresql.crt</filename>, alors son certificat de l'autorité
parente, et ainsi de suite jusqu'à arriver à l'autorité
<quote>racine</quote> qui est accepté par le serveur. Le certificat
racine doit être inclus dans chaque cas où
<filename>postgresql.crt</filename> contient plus d'un certificat.
Le premier certificat dans <filename>postgresql.crt</filename> doit être le
certificat du client parce qu'il doit correspondre à la clé privée du
client. Les certificats <quote>intermédiaires</quote> peuvent être ajoutés
au fichier en option &mdash; le faire permet d'éviter d'avoir à stocker les
certificats intermédiaires sur le fichier <filename>root.crt</filename> du
serveur.
</para>

<para>
Notez que <filename>root.crt</filename> liste les autorités de certificat
de haut-niveau qui sont considérées de confiance pour les certificats
serveur signataires. En principe, il n'a pas besoin de lister l'autorité
de certificats qui a signé le certificat du client, bien que dans la plupart
des cas, l'autorité du certificat sera aussi de confiance pour les
certificats serveur.
Pour des instructions sur la création de certificats, voir <xref
linkend="ssl-certificate-creation"/>.
</para>

</sect2>
Expand Down
2 changes: 1 addition & 1 deletion postgresql/pgcrypto.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1048,7 +1048,7 @@
</para>
<itemizedlist>
<listitem><para><literal>bf</literal> &mdash; Blowfish</para></listitem>
<listitem><para><literal>aes</literal> &mdash; AES (Rijndael-128)</para></listitem>
<listitem><para><literal>aes</literal> &mdash; AES (Rijndael-128, -192 ou -256)</para></listitem>
</itemizedlist>
<para>
et <replaceable>mode</replaceable> fait partie de&nbsp;:
Expand Down
89 changes: 44 additions & 45 deletions postgresql/plpgsql.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5251,26 +5251,33 @@ $$ LANGUAGE plpgsql STRICT IMMUTABLE;
compatible Oracle que vous pouvez utiliser pour simplifier vos efforts de portage.
</para>

<programlisting>--
-- fonctions instr qui reproduisent la contrepartie Oracle
-- Syntaxe: instr(string1, string2, [n], [m]) où [] signifie paramètre optionnel.
<indexterm>
<primary>fonction <function>instr</function></primary>
</indexterm>

<programlisting><![CDATA[
--
-- fonctions instr qui reproduisent leur équivalent Oracle
-- Syntax: instr(string1, string2 [, n [, m]])
-- where [] denotes optional parameters.
--
-- Cherche string1 en commençant par le n-ième caractère pour la m-ième occurrence
-- de string2. Si n est négatif, cherche en sens inverse. Si m n'est pas fourni
-- suppose 1 (la recherche commence au premier caractère).
-- Search string1, beginning at the nth character, for the mth occurrence
-- of string2. If n is negative, search backwards, starting at the abs(n)'th
-- character from the end of string1.
-- If n is not passed, assume 1 (search starts at first character).
-- If m is not passed, assume 1 (find first occurrence).
-- Returns starting index of string2 in string1, or 0 if string2 is not found.
--
CREATE FUNCTION instr(varchar, varchar) RETURNS integer AS $$
DECLARE
pos integer;
BEGIN
pos:= instr($1, $2, 1);
RETURN pos;
RETURN instr($1, $2, 1);
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
CREATE FUNCTION instr(string varchar, string_to_search varchar, beg_index integer)
CREATE FUNCTION instr(string varchar, string_to_search_for varchar,
beg_index integer)
RETURNS integer AS $$
DECLARE
pos integer NOT NULL DEFAULT 0;
Expand All @@ -5279,25 +5286,23 @@ DECLARE
length integer;
ss_length integer;
BEGIN
IF beg_index &gt; 0 THEN
IF beg_index > 0 THEN
temp_str := substring(string FROM beg_index);
pos := position(string_to_search IN temp_str);
pos := position(string_to_search_for IN temp_str);
IF pos = 0 THEN
RETURN 0;
ELSE
RETURN pos + beg_index - 1;
END IF;
ELSIF beg_index &lt; 0 THEN
ss_length := char_length(string_to_search);
ELSIF beg_index < 0 THEN
ss_length := char_length(string_to_search_for);
length := char_length(string);
beg := length + beg_index - ss_length + 2;
beg := length + 1 + beg_index;
WHILE beg &gt; 0 LOOP
WHILE beg > 0 LOOP
temp_str := substring(string FROM beg FOR ss_length);
pos := position(string_to_search IN temp_str);

IF pos &gt; 0 THEN
IF string_to_search_for = temp_str THEN
RETURN beg;
END IF;
Expand All @@ -5312,7 +5317,7 @@ END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
CREATE FUNCTION instr(string varchar, string_to_search varchar,
CREATE FUNCTION instr(string varchar, string_to_search_for varchar,
beg_index integer, occur_index integer)
RETURNS integer AS $$
DECLARE
Expand All @@ -5324,39 +5329,32 @@ DECLARE
length integer;
ss_length integer;
BEGIN
IF beg_index &gt; 0 THEN
beg := beg_index;
temp_str := substring(string FROM beg_index);
IF occur_index <= 0 THEN
RAISE 'argument ''%'' is out of range', occur_index
USING ERRCODE = '22003';
END IF;
IF beg_index > 0 THEN
beg := beg_index - 1;
FOR i IN 1..occur_index LOOP
pos := position(string_to_search IN temp_str);

IF i = 1 THEN
beg := beg + pos - 1;
ELSE
beg := beg + pos;
END IF;

temp_str := substring(string FROM beg + 1);
pos := position(string_to_search_for IN temp_str);
IF pos = 0 THEN
RETURN 0;
END IF;
beg := beg + pos;
END LOOP;
IF pos = 0 THEN
RETURN 0;
ELSE
RETURN beg;
END IF;
ELSIF beg_index &lt; 0 THEN
ss_length := char_length(string_to_search);
RETURN beg;
ELSIF beg_index < 0 THEN
ss_length := char_length(string_to_search_for);
length := char_length(string);
beg := length + beg_index - ss_length + 2;
beg := length + 1 + beg_index;
WHILE beg &gt; 0 LOOP
WHILE beg > 0 LOOP
temp_str := substring(string FROM beg FOR ss_length);
pos := position(string_to_search IN temp_str);

IF pos &gt; 0 THEN
IF string_to_search_for = temp_str THEN
occur_number := occur_number + 1;

IF occur_number = occur_index THEN
RETURN beg;
END IF;
Expand All @@ -5371,6 +5369,7 @@ BEGIN
END IF;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
]]>
</programlisting>
</sect2>

Expand Down

0 comments on commit 9d7c269

Please sign in to comment.