Ver Mensaje Individual
  #1  
Antiguo 22-08-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Reputación: 22
sitrico Va por buen camino
Asignar permisos a usuarios

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

/* 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.
__________________
Sitrico
Responder Con Cita