Création d'un nouvel utilisateur à partir d'une table [Postgres]]
Bonjour,
J'essai de faire un trigger pour créer des utilisateur à partir d'une table user
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE OR REPLACE FUNCTION creation_user() RETURNS trigger AS '
DECLARE
idfy VARCHAR(255);
passwd VARCHAR(32);
BEGIN
SELECT login, mdp INTO idfy, passwd FROM utilisateur WHERE id_utilisateur=(SELECT MAX(id_utilisateur) FROM utilisateur) ;
IF idfy is not null
THEN
CREATE USER idfy WITH PASSWORD ''passwd'' LOGIN ;
END IF;
RETURN NULL;
END;
' LANGUAGE plpgsql;
CREATE TRIGGER create_user AFTER INSERT ON utilisateur FOR EACH ROW EXECUTE PROCEDURE creation_user(); |
Mais le problème c'est que l'uyilisateur crée est idfy et non pas le dernier utilisateur.
J'ai donc testé cette méthode
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| CREATE OR REPLACE FUNCTION creation_user() RETURNS trigger AS '
BEGIN
CREATE USER new.login WITH PASSWORD ''new.mdp'' LOGIN ;
RETURN NULL;
END;
' LANGUAGE plpgsql;
CREATE TRIGGER create_user AFTER INSERT ON utilisateur FOR EACH ROW EXECUTE PROCEDURE creation_user(); |
Le problème c'est qu'il y a une erreur pres de New, mais je ne sais pas vraiment pourquoi
Code:
1 2
| ERREUR: erreur de syntaxe sur ou près de « . »
LINE 4: CREATE USER new.login WITH PASSWORD ''new.mdp'' LOGIN ; |
Une petite aide SVP