Il faut en fait passer par de
sparky/ = 24 Novembre, 2006 - 13:06
Il faut en fait passer par des vues filtrantes, exemple simple
Création d'une table bidon avec un champs col1
create table toto (col1 text);
insert into toto (col1) values ('A');
insert into toto (col1) values ('B');
insert into toto (col1) values ('C');
insert into toto (col1) values ('D');
insert into toto (col1) values ('E');
-- pour ajouter une condition sur l'utilisateur courant j'ajoute une colonne pour les utilisateurs qui peuvent, je mets à jour et je crée une vue
alter table toto add column t_user text;
update toto set t_user='postgres';
insert into toto (col1,t_user) values ('F','user1');
-- je crée l'utilisateur user1 qui ne peut voir que F
create user user1;
create view v_all as select * from toto where t_user=user;
revoke select on toto from user1;
grant select on v_all to user1;
-- connection en tant que postgresql je vois tout sauf F
\c postgres postgres
select * from v_all ;
\c postgres user1
select * from v_all ;
==> montre uniqt F
select * from toto;
==> permission denied
Bon pour peaufiner, on pourrait créer une rule, je n'ai pas essayer
[ Vous devez
vous connecter pour poster des commentaires ]
En effet, c'est la solution s
cbredel/ = 25 Novembre, 2006 - 12:43
En effet, c'est la solution simple... Mon problème est que je vais avoir presque 120 services différents ( avec plusieurs user par service)
Du coup, cela me gene un peu d'avoir 120 vue par table ...
[ Vous devez
vous connecter pour poster des commentaires ]
Hm... Un tit script pour cré
sparky/ = 27 Novembre, 2006 - 10:51
Hm... Un tit script pour créer les vues, adapter les tables et tu les mets dans un autre schéma, histoire de ne pas polluer ? Je suis persuadé que toutes les tables ne devront pas être filtrées.
Pense à faire des group au fait, cela sera plus facile à gérer
[ Vous devez
vous connecter pour poster des commentaires ]