PDA

Ver la Versión Completa : Asignar permisos a usuarios


sitrico
22-08-2007, 03:29:53
Que permisos debo asignar para que CUALQUIER usuario pueda ejecutar el Siguiente procedimiento:

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. :rolleyes:

Preferiría no dar acceso publico a la tabla DG_USUARIOS :cool:

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
);

/* Privileges of procedures */
GRANT SELECT ON DG_USUARIOS TO LEERDATOSUSUARIO;

Con esta configuración cuando ingreso como usuario "normal" (no SYSDBA) no me deja leer los datos. :(

rastafarey
23-08-2007, 20:26:58
Dale los permisos a los usuarios