Witam
Piszę moduł administracyjny dla bazy danych, gdzie ze względów bezpieczeństwa, całe przetwarzanie ma być schowane po stronie serwera, a klient Delphi tylko wywołuje uruchamianie określonych procedur wbudowanych.
Każdy użytkownik ma przydział uprawnień (identyfikacja przez pole "grupa") i dostaje GRAND EXECUTE na zestaw dozwolonych procedur. Chciałbym to zrobić tabelarycznie, czyli tabela "uzytkownicy" (kolumna nick) oraz tabela "procedury" (kolumny nazwa_procedury, grupa). Poniższa procedura powinna więc być wywołana dla wszystkich kombinacji użytkownik - nazwa procedury, dla jego grupy uprawnień.

 #========================================= zestaw uprawnień zwykłego usera
 
DROP PROCEDURE  IF EXISTS uprawnienia1_usera//
 
CREATE PROCEDURE uprawnienia1_usera(
    IN sNickG VARCHAR(20),
    IN sNazwaProcedury VARCHAR(50)) 
 
BEGIN
    DECLARE komenda VARCHAR(300);
 
    SET @komenda=CONCAT("GRANT EXECUTE ON PROCEDURE informacje.",@sNazwaProcedury ," TO ",@sNickG) ;
        PREPARE stmt1 FROM @komenda;
        EXECUTE stmt1;
        DEALLOCATE PREPARE stmt1;
 
END//
 
delimiter ;
FLUSH PRIVILEGES;

Samo stworzenie listy parametrów jest proste:
SELECT nick, nazwa_procedury FROM uzytkownicy, procedury WHERE procedury.grupa=1

jednak nie wiem, jak teraz kolejne elementy wysyłać do procedury wbudowanej. W Delphi sprawa była by prosta - pętla FOR albo WHILE, ale dla bezpieczeństwa, żadna z tych tabel nie może być przesyłana na zewnątrz, więc przetwarzanie musi się odbyć w SQL po stronie serwera.

Z góry dziękuję za pomoc