Vous n'êtes pas identifié(e).
Pages : 1
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
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
D'accord. Donc pas de solution à mon problème... Dommage !
Merci beaucoup pour votre réponse (très rapide !).
Cordialement
Hors ligne
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
Pages : 1