PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#276 Re : Général » check_postgres » 01/12/2011 15:48:59

Bonjour Marc,

J'ai fait un ENV et ma variable PATH est :
     PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/postgres/bin:/usr/local/pgsql/bin

J'exécute en User postgres.

#277 Général » check_postgres » 01/12/2011 15:35:59

mortimer.pw
Réponses : 6

Bonjour à tous,

Je travaille sur une version 9.0 sous Cent-OS.

J'ai récupéré le package check_postgres.tar.gz (2.18.0), décompréssé, lu le fichier README.

J'essaye la procédure d'install :
     perl Makefile.PL
     make
     make test
     make install

Le make test me retourne des erreurs :
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00_basic.................ok
t/00_signature.............skipped
        all skipped: Test skipped unless environment variable RELEASE_TESTING is set
t/00_test_tester...........skipped
        all skipped: Test skipped unless environment variable RELEASE_TESTING is set
t/02_autovac_freeze........dubious
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-8
        Failed 8/8 tests, 0.00% okay
t/02_backends..............dubious
        Test returned status 255 (wstat 65280, 0xff00)
.........
.........
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
t/99_cleanup...............ok
Failed Test               Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/02_autovac_freeze.t      255 65280     8   16 200.00%  1-8
t/02_backends.t            255 65280    53  106 200.00%  1-53
t/02_bloat.t               255 65280    30   60 200.00%  1-30

Quel est le problème ?
Y-a-t'il des pré-requis ?
Je ne trouve pas d'infos sur le net pour l'install.

Pouvez-vous m'aider ?

#279 PL/pgSQL » IN et LIKE » 06/10/2011 08:52:50

mortimer.pw
Réponses : 3

Bonjour,

Je n'ai pas trouvé le forum SQL, je me permets donc de poster dans PL/pgSQL.

Est-il possible d'utiliser IN et LIKE à la fois ?

Je m'explique:
     j'ai une liste de valeurs : PUBLICITE, CINEMA, PECHE.
     j'ai une table des livres (ID,LIBELLE) :
          1  LA PECHE A LA TRUITE
          2  LA PECHE EN MER
          3  A L'AFFICHE DU CINEMA
          4  ....
          5  AU CINEMA CE SOIR
          6  ....
          7  ....
          8  TOUTE LA PUBLICITE
          9  ....

je voudrai trouver tous les livres dont le libellé contient mes valeurs.

Question subsidiaire : est-ce que cela peut fonctionner également sous Oracle ?

D'avance merci pour les réponses.

#280 Re : Sécurité » GRANT sur Fonctions Utilisateurs » 09/06/2011 10:27:15

Super Marc, cela fonctionne à merveille, merci pour l'explication.

#281 Sécurité » GRANT sur Fonctions Utilisateurs » 09/06/2011 09:42:44

mortimer.pw
Réponses : 2

Bonjour à tous,

Je travaille sur des bases supérieures à 8.0 sous Red-Hat et Cent-OS.

Je souhaite donner le droit d'exécution sur un paquet de Fonctions Utilisateurs.

J'ai la syntaxe : GRANT EXECUTE ON FUNCTION nomfonction (typearg) TO nomrole.

J'ai trouvé la table pg_proc qui contient la liste des Fonctions.


Mon problème est de récupérer la liste des types des arguments.
Est-ce le champ proargtypes ?
Et ensuite faut-il croiser avec la table pg_type ?
Il s'agit d'un tableau de vecteurs, comment avoir les noms des types ?

Pouvez-vous m'apporter de l'aide ?

Merci par avance.

#282 Re : Migration » RECORD Oracle sous PostgreSQL » 08/06/2011 09:52:15

Bonjour à tous,

Merci Marc pour la réponse négative.

Je vais chercher des exemples Perl, ou peut être Java ? pour la déclaration des tableaux associatifs, et l'appel sous plpgsql.

Si vous avez un lien, je suis preneur.

#283 Sécurité » GRANT SELECT ON ALL TABLES en version 8 » 08/06/2011 09:25:05

mortimer.pw
Réponses : 1

Bonjour à tous,

Je travaille sur des bases supérieures à 8.0 sous Red-Hat et Cent-OS.

J'ai utilisé la commande "GRANT SELECT ON ALL TABLES IN SCHEMA monschema TO groupe_select;" en version 9, pour donner le droit de lire toutes les tables de mon schéma.

Cette commande ne passe pas en version 8.

Faut-il donner le droit table par table ?
J'imagine qu'il y a une autre méthode mais je n'ai pas trouvé.

Merci d'avance pour votre aide.

#284 Migration » RECORD Oracle sous PostgreSQL » 07/06/2011 16:49:22

mortimer.pw
Réponses : 5

Bonjour,

Je travaille en version 8 et 9 sous Red-hat et Cent-OS.

J'ai des Fonctions Oracle à réécrire avec ce genre de déclarations :

TYPE tablevar IS RECORD (
    vbl varchar2(2000),
    err_code number,
    obligatoire number(1),
    existence number(1),
    type varchar2(50)
    );
TYPE tablectrl IS TABLE OF tablevar INDEX BY VARCHAR2(50) ;

Est-il possible de faire cela sous PostgreSQL ?

D'avance merci pour les réponses.

#285 Re : Sécurité » Cherche Tuto sur la sécurité, les rôles, les droits » 23/05/2011 13:43:01

Bonjour Marc,
D'accord, le principal étant qu'un simple utilisateur ne puisse accéder au contenu des tables.
Concernant Public, y-a-t'il des choses à sécuriser ?
Autre exemple, je vois que mon simple utilisateur peut consulter les tables pg_user, pg_stat_activity, ... Est-il possible d'empêcher cela ?

#286 Re : Sécurité » Cherche Tuto sur la sécurité, les rôles, les droits » 23/05/2011 12:02:31

Bonjour à tous,

Je viens de créer un rôle USER_BASIC (cet Utilisateur peut uniquement consulter les tables du schema TEST) :
     CREATE ROLE user_basic INHERIT LOGIN ENCRYPTED PASSWORD 'user_basic1' IN ROLE GROUPE_BASIC;

Le rôle GROUPE_BASIC est défini comme suit :
     CREATE ROLE GROUPE_BASIC NOINHERIT;
     GRANT USAGE ON SCHEMA TEST TO GROUPE_BASIC;
     GRANT SELECT ON ALL TABLES IN SCHEMA TEST TO GROUPE_BASIC;

Cet utilisateur peut utiliser l'outil PgAdmin pour ces consultations.
Est-il possible d'empêcher l'affichage des autres Schémas et de leurs contenus ?

De façon plus générale, est-il possible d'empêcher la consultation de toutes autres informations que celles définies dans les groupes et droits ?
Je pense notamment au PUBLIC.

#287 Re : Sécurité » Cherche Tuto sur la sécurité, les rôles, les droits » 20/05/2011 14:40:34

Je reçois à présent des mails d'erreur de l'appli JAVA :
          ERROR: permission denied for sequence test_id_seq

Cela laisse penser que mon utilisateur ne peut pas faire d'INSERT dans une table qui possède une séquence.

Je vais donc ajouter le droit : GRANT USAGE on ALL SEQUENCES IN SCHEMA monschema.

La notion USAGE n'est pas claire pour moi. Je lis dans la doc "autorise l'accès aux objets contenus dans le schéma ".
Mon : GRANT USAGE ON SCHEMA monschema TO BASIC_monschema;  n'est-il pas suffisant ?

#289 Re : Sécurité » Cherche Tuto sur la sécurité, les rôles, les droits » 20/05/2011 12:27:26

Je viens de modifier la précédente réponse pour dire que j'ai également créé le rôle :
     CREATE ROLE toto NOINHERIT LOGIN ENCRYPTED PASSWORD 'titi' IN ROLE BASIC_monschema;

excusez-moi.

#290 Re : Sécurité » Cherche Tuto sur la sécurité, les rôles, les droits » 20/05/2011 12:22:11

Bonjour à tous,

J'ai une appli JAVA qui toune en local sur la machine de mon Serveur PostgreSQL.
Cette appli posséde un fichier de configuration où est décrit la connexion à la BD test :
        <DATABASE>
                <DRIVER>org.postgresql.Driver</DRIVER>
                <URL>jdbc:postgresql://localhost:5432/test</URL>
                <UID>toto</UID>
                <PWD>titi</PWD>
                <SCHEMA_GEO>monschema</SCHEMA_GEO>
                <SQLSTATE_CONNECTION>S1000</SQLSTATE_CONNECTION>
        </DATABASE>

J'ai ajouté à mon fichier pg_hba.conf la ligne suivante :
     host    test     toto      127.0.0.1/32                    md5

J'ai créé les rôles et donné les droits suivants :
    CREATE ROLE BASIC_monschema NOINHERIT;
    GRANT USAGE ON SCHEMA monschema TO BASIC_monschema;
    GRANT SELECT ON ALL TABLES IN SCHEMA monschema TO BASIC_monschema;
                CREATE ROLE toto NOINHERIT LOGIN ENCRYPTED PASSWORD 'titi' IN ROLE BASIC_monschema;

Lorsque j'exécute l'appli JAVA, j'obtiens le message suivant dans les logs :
     127.0.0.1 20829 2011-05-20 12:11:31 CEST PARSE 1 ERROR:  permission denied for schema monschema at character 166
     127.0.0.1 20829 2011-05-20 12:11:31 CEST PARSE 2 STATEMENT:  select id_test,lib_test from monschema.matabletest;

Est-ce que j'ai oublié quelque chose ?

#291 Sécurité » Cherche Tuto sur la sécurité, les rôles, les droits » 17/05/2011 11:31:51

mortimer.pw
Réponses : 14

Bonjour à tous,

Je travaille sur des bases supérieures à 8.0 sous Red-Hat et Cent-OS.

Même aprés la lecture de différents chapitres de la Doc, j'ai un peu de mal à mettre en oeuvre la sécurité, à créer les rôles et donner les droits.

Auriez-vous quelques liens vers des Tutos, exemples, ... ?

D'avance merci.

#293 Re : Sécurité » Problême de SELECT sur un nouveau ROLE » 16/05/2011 16:09:21

Je dois donc utiliser les 2 commandes pour pouvoir faire du SELECT ?

#294 Re : Sécurité » Problême de SELECT sur un nouveau ROLE » 16/05/2011 16:06:01

Bonjour Marc,

La commande suivante ne donne pas ce droit ?
     grant select on all tables in schema test to toto;

#295 Sécurité » Problême de SELECT sur un nouveau ROLE » 16/05/2011 15:58:46

mortimer.pw
Réponses : 6

Bonjour à tous,

Je travaille sur des bases supérieures à 8.0 sous Red-Hat et Cent-OS.

J'ai créé un nouveau rôle :
     CREATE ROLE toto LOGIN ENCRYPTED PASSWORD 'md51a7d25d0b58060552a5061297579e015'

J'ai autorisé ce rôle à se connecter à ma base demo :
     host    demo     toto        19.68.1.45/32                md5

J'ai accorder le droit de faire du SELECT à ce rôle sur le schéma test :
     grant select on all tables in schema test to toto;

Je me connecte via PgAdmin, cela fonctionne.

J'essaye de faire un SELECT (select * from test.matable;) et j'obtiens :
     ERROR:  permission denied for schema test
     ********** Erreur **********
     ERROR: permission denied for schema test
     État SQL :42501

Est-ce que j'ai oublié (ou mal compris) quelque chose ?

Merci pour les réponses.

#296 Sécurité » Donner accès à pg_read_file à un simple utilisateur » 10/05/2011 08:12:28

mortimer.pw
Réponses : 1

Bonjour à tous,

Je travaille sur des bases supérieures à 8.0 sous Red-Hat et Cent-OS.

Nous travaillons à la sécurisation de nos système.

Plusieurs de nos applicatif se connectent en super-utilisateur (postgres) et utilisent la fonction pg_read_file pour allé lire dans un fichier une valeur SITE qui indique sur quel site l'outil travaille.

Nous avons créé des "utilisateurs applicatifs", en restreignant les droits (delete interdit, select/insert/update uniquement sur certaines tables de certains schémas) et apparemment la fonction pg_read_file ne marche plus.

J'ai lu dans la Doc que "L'utilisation de ces fonctions est restreinte aux superutilisateurs".

Y a t'il un moyen de contourner ce problème ? ou existe t'il une autre fonction utilisable par un simple utilisateur ?

Merci pour les réponses.

#297 Re : Sécurité » Mise en place de la sécurité » 09/05/2011 17:12:50

D'accord Marc, j'ai mis md5.
Merci pour votre aide.

#298 Re : Sécurité » Mise en place de la sécurité » 09/05/2011 15:33:07

J'ai mis cette "pseudo" adresse pour l'exemple (j'ai effectivement mis l'adresse IP de mon PC avec le masque correspondant).

Dans le fichier de LOG, j'ai les messages
     127.0.0.1 17994 2011-05-09 15:30:23 CEST authentication 1 LOG:  could not connect to Ident server at address "127.0.0.1", port 113: Connexion refusée
     127.0.0.1 17994 2011-05-09 15:30:23 CEST authentication 2 FATAL:  Ident authentication failed for user "postgres"

#299 Re : Sécurité » Mise en place de la sécurité » 09/05/2011 15:19:43

Marc,

J'ai ajouté la ligne suivante pour me permettre, depuis mon PC (IP pour exemple 199.199.199.199), de travailler avec PgAdmin :
          host    all     postgres        199.199.199.199  255.255.255.0   trust

J'ai également une application JAVA qui tourne en local sur le serveur et qui utilise un fichier de configuration où sont précisés :
          <URL>jdbc:postgresql://localhost:5432/test</URL>
          <UID>postgres</UID>
          <PWD>pwd</PWD>
Ce dernier n'arrive plus à se connecter ?? n'utilise t'il pas la ligne ?
          host    all     postgres        127.0.0.1/32                    ident

#300 Re : Sécurité » Mise en place de la sécurité » 09/05/2011 10:47:38

Ok, Marc, cela fonctionne.

Si j'ai bien compris, la 2ème ligne est pour les connexions distantes ?

Je dois maintenant définir mes Utilisateurs Applicatifs, leur accorder les droits INSERT/UPDATE/DELETE. Puis mettre les adresses IP des postes applicatifs qui auront droit d'accés.

Merci encore pour votre aide.

Pied de page des forums

Propulsé par FluxBB