Salut!
J'ai fait une procédure pour donner les droits à un nouveau utilisateur qu'on vient de creer. J'utilise cette procédure chaque fois que l'on crée un utilisateur. Elle prend en paramètre le nom de l'utilisateur.
Quand je tente de l'executer j'obtiens ce message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 CREATE PROCEDURE privilege(name varchar(40)) AS ECLARE VARIABLE nomTable VARCHAR(40); DECLARE VARIABLE nomProc VARCHAR(40); BEGIN FOR SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0 INTO :nomTable DO IF(nomTable <>'USER')THEN EXECUTE STATEMENT 'GRANT ALL ON '||:nomTable||' TO '||:name; FOR SELECT RDB$PROCEDURE_NAME FROM RDB$PROCEDURES INTO :nomProc DO EXECUTE STATEMENT 'GRANT EXECUTE ON PROCEDURE '||:nomProc||' TO '||:name; EXECUTE STATEMENT 'GRANT ALL ON "USER" '|| 'TO ' ||:mat; END
si j'enlève cette partie tout marche bien:unsuccessful metadata update STORE RDB$USER_PRIVILEGES failed in grant action cancel by trigger(0) preserve data integrity could not find table/procedure for grant
Si quelque peut me dire où se situe le problème. Merci d'avance!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 FOR SELECT RDB$PROCEDURE_NAME FROM RDB$PROCEDURES INTO :nomProc DO EXECUTE STATEMENT 'GRANT EXECUTE ON PROCEDURE '||:nomProc||' TO '||:name;
Partager