Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : Sécurité » Droits de l'utilisateur postgres sur les dossiers et COPY » 04/03/2011 11:31:56
Merci pour votre réponse.
Je viens de trouver le problème .... C'était tout bête ....
Tout les droits et groupes étaient bien positionnés, mais pour que le serveur postgres prenne en compte son appartenance à un nouveau groupe il fallait le redémarrer ...
Merci encore.
#2 Sécurité » Droits de l'utilisateur postgres sur les dossiers et COPY » 03/03/2011 10:14:32
- nGuinet
- Réponses : 2
Bonjour,
Ayant une politique de sécurité stricte sur mes serveurs je voulais permettre à postgresql d'utiliser COPY dans un répertoire où seul le propriétaire et son groupe y ont accès.
A mon plus grand étonnement (j'ai testé sur une DEBIAN et une SUSE avec version de postgresql 8.4), lorsque l'utilisateur postgres n'est pas propriétaire du répertoire, le seul moyen de l'y faire accéder est de positionner les droits "other" du répertoire sur read/exec.
Je voulais simplement ajouter le groupe du répertoire à l'utilisateur postgres,mais COPY me renvoie l'erreur Permission non accordée alors que ce groupe a bien les droit en lecture/exécution.
Dans la doc il est noté qu'il suffit que l'utilisateur postgres possède les droits sur le chemin et le fichier pour que COPY fonctionne. Mais apriori ça ne fonctionne pas avec les droits hérité d'un groupe...
Avez déjà entendu parlé de ce problème ? Savez-vous le résoudre ?
Merci par avance.
#3 Re : Général » Imbriquer un update dans un insert ? » 20/09/2009 11:18:55
Merci pour vos réponses.
J'ai utilisé le trigger suivant pour résoudre ce problème :
-- table1 : table pour insertion
-- table2 : table à updater
CREATE OR REPLACE FUNCTION process_add_updated() RETURNS TRIGGER AS $table2$
DECLARE
BEGIN
IF (TG_OP = 'UPDATE') THEN
INSERT INTO table1 SELECT NEW.*;
RETURN NEW;
END IF;
RETURN NULL; -- result is ignored since this is an AFTER trigger
END;
$table2$ LANGUAGE plpgsql;
CREATE TRIGGER add_updated
AFTER UPDATE ON table2
FOR EACH ROW EXECUTE PROCEDURE process_add_updated();
Pour utiliser ce trigger il faut installer le langage plpgsql. (tuto : http://docs.postgresqlfr.org/8.1/xplang.html)
#4 Général » Imbriquer un update dans un insert ? » 15/09/2009 14:08:36
- nGuinet
- Réponses : 3
Est-il possible d'imbriquer un update dans un insert grâce à un returning * ?
exemple :
insert into table1 (update table2 set .... where .... returning *)
Cet exemple me renvoi une erreur sur "set".
En faite je cherche un moyen facile d'insérer des lignes modifiées par une commande update dans une table tierce.
Avez-vous une idée ?
Merci.
#5 Optimisation » Nombre de colonne » 23/12/2008 12:01:25
- nGuinet
- Réponses : 1
Est ce qu'un grand nombre de colonnes dans une table diminu fortement les performances d'une selection d'une seul colonne ?
cad : Si une table a X lignes et 200 colonnes et que j'en selectionne qu'une seul, les performances seront elles bien inférieures à une selection sur une table à X lignes et 3 colonnes ?
(Ma question pourrait etre : comment fait postgreSQL pour gérer les colonnes ? Par index ou par balayage ?)
Merci!
#6 Re : Général » Utilisation des pg_attribute » 18/12/2008 11:59:57
ok merci
#7 Re : Général » Utilisation des pg_attribute » 18/12/2008 09:19:00
Merci pour la réponse.
Donc il est impossible en posgreSQL de construire des requêtes dynamiques sur le choix des colonnes et des tables ?
#8 Général » Utilisation des pg_attribute » 15/12/2008 18:17:32
- nGuinet
- Réponses : 4
Est il possible dans la clause WHERE d'utiliser un des champs de pg_attribute pour identifier une colonne (le nom ou la position)?
Dans la table pg_attribute nous avons des champs attnum et attname qui définissent la position et le nom des colonnes de chaque table. Je voudrais les utiliser pour identifier une colonne dans une requête. Exemple :
select * from matable
where (SELECT attname FROM pg_attribute
WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'matable') and attnum = 4) = 'something';
Merci d'avance.
Pages : 1