Cita:
Empezado por Casimiro Notevi
Que yo sepa, los SP y los triggers lo necesitan. Yo siempre lo he hecho así, no he probado a no ponerlo.
Y si usas ibexpert, sql manager, etc. lo hacen automáticamente ellos, aunque tú no lo pongas.
|
Sí, con SQL Manager lo ponen automáticamente, pero por por código no hace falta. Tengo dos o tres definidos en el proyecto y se han ejecutado bien sin tener que poner set term. Por ejemplo:
Código SQL
[-]CREATE PROCEDURE Grant_BBDD(iUsuario VARCHAR(31)) AS
DECLARE VARIABLE Objeto VARCHAR(31);
BEGIN
-- Se otorgan derechos sobre las tablas y sobre las vistas
FOR SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE RDB$SYSTEM_FLAG = 0
INTO :Objeto
DO
EXECUTE STATEMENT 'GRANT ALL ON ' || Objeto || ' TO ' || iUsuario;
-- Se otorgan derechos sobre los stored procedures
FOR SELECT RDB$PROCEDURE_NAME FROM RDB$PROCEDURES
WHERE RDB$SYSTEM_FLAG = 0
INTO :Objeto
DO
EXECUTE STATEMENT 'GRANT EXECUTE ON PROCEDURE ' || Objeto || ' TO ' || iUsuario;
END;