Que permisos debo asignar para que CUALQUIER usuario pueda ejecutar el Siguiente procedimiento:
Código SQL
[-]SET TERM ^ ;
CREATE PROCEDURE LEERDATOSUSUARIO
returns (
idusuario integer,
usuario char(40),
cedula char(10),
activo integer)
as
begin
FOR SELECT idusuario, Usuario, cedula, activo FROM dg_usuarios
Where login = current_user Into :idusuario, :usuario, :cedula, :activo do
suspend;
end^
SET TERM ; ^
GRANT SELECT ON DG_USUARIOS TO PROCEDURE LEERDATOSUSUARIO;
GRANT EXECUTE ON PROCEDURE LEERDATOSUSUARIO TO "PUBLIC";
GRANT EXECUTE ON PROCEDURE LEERDATOSUSUARIO TO SYSDBA;
La idea es que al conectarse cualquier usuario (actual o futuro) pueda ver si está activo ó no antes de permitir la entrada.
Preferiría no dar acceso publico a la tabla DG_USUARIOS
Código SQL
[-]CREATE TABLE DG_USUARIOS (
IDUSUARIO INTEGER NOT NULL,
USUARIO CHAR(40),
CEDULA CHAR(10),
LOGIN CHAR(15),
IDROL SMALLINT NOT NULL,
IDCARGO SMALLINT,
IDESPECIALIDAD SMALLINT,
ACTIVO SMALLINT DEFAULT 0 NOT NULL
);
GRANT SELECT ON DG_USUARIOS TO LEERDATOSUSUARIO;
Con esta configuración cuando ingreso como usuario "normal" (no SYSDBA) no me deja leer los datos.
