Skip to content

Commit

Permalink
Mise à jour en version 9.4.16
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Feb 18, 2018
1 parent 190cf40 commit aeb09ac
Show file tree
Hide file tree
Showing 13 changed files with 1,110 additions and 169 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
93 changes: 53 additions & 40 deletions postgresql/libpq.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6635,21 +6635,40 @@ description:sslmode=require
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
certification (<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 @@ -6664,14 +6683,14 @@ description:sslmode=require
</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. Si des <acronym>CA</acronym> intermédiaires apparaissent
dans <filename>root.crt</filename>, le fichier doit également contenir les
chaînes de certificat de leur <acronym>CA</acronym> racines.
Sur 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 +6727,12 @@ description:sslmode=require
<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 +6748,17 @@ description:sslmode=require
</para>

<para>
Dans certains cas, le certificat du client peut être signé par une autorité
de certification <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> ou <quote>intermédiaire</quote>, qui est accepté par le serveur. Le certificat
racine doit être inclus dans chaque cas où
<filename>root.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 les <filename>root.crt</filename> clients listent les autorités de certification
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 certification qui a signé le certificat du client, bien que dans la plupart
des cas, l'autorité du certification 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/perform.xml
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ WHERE t1.unique1 &lt; 10 AND t1.unique2 = t2.unique2;
de la mise en cache des données durant les parcours d'index répétés sur
<literal>t2</literal>.) Les coûts du n&oelig;ud correspondant à la boucle sont
ensuite initialisés sur la base du coût du parcours externe, avec une répétition
du parcours interne pour chaque ligne externe (ici 10 * 7.87), plus un petit temps
du parcours interne pour chaque ligne externe (ici 10 * 7.91), plus un petit temps
CPU pour traiter la jointure.
</para>

Expand Down
2 changes: 1 addition & 1 deletion postgresql/pgcrypto.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1057,7 +1057,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 @@ -5401,26 +5401,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><function>instr</function> function</primary>
</indexterm>

<programlisting><![CDATA[
--
-- fonctions instr qui reproduisent l'équivalent Oracle
-- Syntaxe : instr(string1, string2 [, n [, m]])
-- où [] signifie paramètre optionnel.
--
-- 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).
-- de string2. Si n est négatif, cherche en sens inverse, en commençant au caractère
-- en position abs(n) à partir de la fin de string1.
-- If n n'est pas fourni, suppose 1 (la recherche commence au premier caractère).
-- Si m n'est pas fourni, suppose 1 (la recherche commence au premier caractère).
-- Renvoie l'index de début de string2 dans string1, ou 0 si string2 n'est pas trouvé.
--
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 @@ -5429,25 +5436,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 @@ -5462,7 +5467,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 @@ -5474,39 +5479,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 @@ -5521,7 +5519,8 @@ BEGIN
END IF;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
</programlisting>
]]>
</programlisting>
</sect2>

</sect1>
Expand Down

0 comments on commit aeb09ac

Please sign in to comment.