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

#1 04/10/2010 14:17:49

mentat
Membre

Masquer le contenu d'un schema à un utilisateur

Bonjour à toutes et à tous.

J'ai une base de données avec plusieurs schema, dont un (tmp) dont je voudrais masquer le contenu pour un utilisateur (en connexion odbc). Mais je n'y arrive pas (je crois que je m'y prend comme un manche (terme technique)).

J'ai donc deux roles de connexion :
CREATE ROLE postgres LOGIN
  ENCRYPTED PASSWORD '................'
  SUPERUSER INHERIT CREATEDB CREATEROLE;

CREATE ROLE test LOGIN
  ENCRYPTED PASSWORD '............'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT accesodbc TO test;

Un role de groupe:

CREATE ROLE accesodbc
  NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;

et le schema que je voudrais rendre opaque :

CREATE SCHEMA tmp
  AUTHORIZATION postgres;
GRANT ALL ON SCHEMA tmp TO postgres;

Je n'ai pas d'autorisation dessus pour mon utilisateur ou son role, ni pour public pourtant, j'en vois bien le contenu, même si je ne peux pas lire une de ses table (droits refusé).

Normalement, c'est l'option USAGE qui permet de masquer le contenu d'un schéma. Mais la, je n'ai aucun droit et pourtant je peux voir le contenu.

Visiblement je ne comprends pas correctement le fonction des droits. Que dois-je entrer comme instruction (grant/revoke...) pour masquer le contenu du schema tmp à mon utilisateur test ?

Je vous remercie d'avance, de vos réponses éclairées...

Hors ligne

#2 04/10/2010 14:48:46

Marc Cousin
Membre

Re : Masquer le contenu d'un schema à un utilisateur

Usage ne permet pas d'empêcher l'accès à la description des tables du schema: la table du catalogue est de toutes façons accessible à l'utilisateur, qui peut donc récupérer ces informations de toutes façons.

Usage ne vous permet donc que d'empêcher l'accès au contenu des tables (et séquences, vues) du schéma.


Marc.

Hors ligne

#3 04/10/2010 14:56:22

mentat
Membre

Re : Masquer le contenu d'un schema à un utilisateur

D'accord. Donc pas de solution à mon problème... Dommage !

Merci beaucoup pour votre réponse (très rapide !).

Cordialement

Hors ligne

#4 20/05/2011 16:07:20

bebert73
Membre

Re : Masquer le contenu d'un schema à un utilisateur

Bonjour,

Je rebondis sur ce post. En cherchant sur le net je suis tombé sur http://www.opensourcegroups.com/showthread.php?t=1943

Apparemment il existe des outils (commerciaux) d'EnterpriseDB qui permettent un certain niveau de protection de la base de données, du moins au niveau des procédures stockées ("What PL/Secure basically does is it encrypts the application logic that people write, that runs at the database layer," Schumacher said. "Therefore users can't just simply pull up a stored procedure and look at the code, as it's completely encrypted.")

Par contre je suppose que ça ne répond que partiellement à vos besoins, cela ne semble concerner que le code source des procédures stockées, et pas l'accès à la structure des objets de la base (tables, vues, ...).

Hors ligne

Pied de page des forums