Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2004
kpss8m kpss8m is offline
Registrado
 
Registrado: feb 2004
Posts: 7
Poder: 0
kpss8m Va por buen camino
Crear Usuarios en Firebird

Estoy creando un programa para logear usuarios, tiene las siguientes caracteristicas:
1- Un usuario debe logearse solo una vez en la BD (por lo tanto cada usuario tiene su USUARIO en la BD)
2- El usuario se logea en el sistema por medio de una tabla de usuarios (no hay problema)

En el punto 1 es donde tengo el problema, me pidieron una pantalla para la creacion de usuarios y acceso a permisos, dentro del sistema en si no hay problemas ya que se realiza el clasico ABC (Altas, Bajas, Cambios) para usuarios, lo que quisiera saber si existe una instruccion tipo CREATE USER "MIUSUARIO" PASSWORD "mipass"; me parece que en otros motores de BD (postgresql) si traen una instruccion sql para el manejo de usuario de la BD.

Alguien conoce la forma de crear usuarios en interbase, no estoy seguro si se pueden ocupar las apis de firebird para ello, ocupo firebird 1.5 r7, agradeceria cualquier informacion que me puedan proporcionar.
Responder Con Cita
  #2  
Antiguo 18-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
En esta web esta el siguiente ejemplo:
http://www.interbase.com.mx/admin_usuarios.php
Pero creo que en IBX esta el TIBSecurityS o algo por el estilo pero no te lo puedo confirmar ahora.

Personalmente utilizo tablas aparte para manjear los usuarios y los permisos, puesto que aplico permisos por campo a los ABM.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 18-02-2004
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
Hola,
Lo que se me ocurre en este momento y que fue como lo hice hace varios años es: Si atacas FB 1.5, la base de datos de seguridad es "security.fdb", si es IB, es "ISC4.GDB", en esta BD, se encuentra la tabla USERS, que es donde se almacenan los usuarios que se crean en el sistema.
Explico el asunto. Lo que hice fue hacer una conexión a esa BD con el usuario administrador y hacer las inserciones con los datos respectivos asi como si estuvieses en ibconsole u otro administrador de BD FB o IB.
Para la contraseña utilice una funcion propia de unix que es la que utiliza para hacer la encripción del password, claro que esa no la tengo a la mano, se que la tengo almacenada en uno de los correos, pero tendría que buscarla, creo que por ahora puedes ir creando las interfaces para hacer las inserciones de los usuarios mientras busco la funcion si no tienes tanto afan. Claro que si alguno de los maestros de IB o FB sabe cual es exactamente el fichero te podrían indicar para descargarlo. Creo que a mi en ese momento me lo facilitaron y si lo encuentro no veo problemas para pasarlo a quien lo necesite.

Espero te haya ayudado con esto.
Saludos.
Responder Con Cita
  #4  
Antiguo 18-02-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Empezado por mosorio
Explico el asunto. Lo que hice fue hacer una conexión a esa BD con el usuario administrador y hacer las inserciones con los datos respectivos asi como si estuvieses en ibconsole u otro administrador de BD FB o IB.
no entiendo el motivo para conectarse "directamente" a la base de datos de usuarios cuando existen funciones en el API para administrarlos: isc_add_user(), isc_delete_user(), e isc_modify_user() (*), o también, desde la versión 6.0 de InterBase y todas las de Firebird, a través del API de servicios. :?

(*) Podría entenderlo en el caso de que se utilicen componentes de acceso genéricos (BDE, DBX), pero en el caso de los "nativos", casi todos tienen componentes específicos (encapsulando las funciones del API citadas anteriormente) para ello, gestionando internamente el asunto de la encripción de las contraseñas.

Saludos.

Última edición por kinobi fecha: 18-02-2004 a las 17:53:26.
Responder Con Cita
  #5  
Antiguo 18-02-2004
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
Hola,
Sabia que habian unas isc, las he estado buscando en los manuales de interbase, pero no las encontraba, pero como esto fue lo que hice cuando trabajaba con D5, entonces por eso di la solucion, se que hay mejores y que las apis es lo mejor, pero no las encontraba para poder infomrarlo.

Gracias por recordarmelas tambien
Saludos
Responder Con Cita
  #6  
Antiguo 18-02-2004
kpss8m kpss8m is offline
Registrado
 
Registrado: feb 2004
Posts: 7
Poder: 0
kpss8m Va por buen camino
Antes que nada fracias por contestar tan rapido, aqui lo importante de crear este modulo para el sistema es que el sistema trabajara en varias partes, incluso en algunas de ellas no hay un onformatico para que cree los usuarios, asi que se asignara a la persona de mas seguridad para ello, ya encontre algo de informacion al respecto de mi problema, lo pongo aqui por si a alguen le interesa

la primera es ocupar gsec (ejecutandolo desde el delphi)


la segunda es con las apis
Isc_add_user() : Para añadir usuarios.
Isc_delete_user() : Para eliminar usuarios.
Isc_modify_user() : Para modificar los atributos de un usuario.

y la tercera es ocupar UDF

esto lo encontre en http://elrinconcito.com/delphi/Interbase5/cd_ib_08.html
Responder Con Cita
  #7  
Antiguo 18-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
El componente IBX IBSecurityService (pestaña Interbase Admin) te permite crear y modificar usuarios, sin tener que bajar al nivel de la API (lo hace el componente).

Otras colecciones de componentes (IBO, FibPlus, ...) tienes componentes similares.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #8  
Antiguo 18-02-2004
kpss8m kpss8m is offline
Registrado
 
Registrado: feb 2004
Posts: 7
Poder: 0
kpss8m Va por buen camino
ok, gracias si encuentras la funcion me ayudarias bastante, por ahora considerare todas las opciones que me han facilitado aqui. aun me falta parte de la interfaz de creacion de usuarios.
Responder Con Cita
  #9  
Antiguo 20-02-2004
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
Hola,
Alfin he encontrado el fichero, pero no se como colgarlo en el foro, no se si laguno de los moderadores nos indique como, es un fichero zip de 5k, asi que no creo que haya problemas. Son rutinas en el mismo delphi donde se pasa la contraseña y la encripta para utilizarla en la inserción de la BD.
Responder Con Cita
  #10  
Antiguo 21-02-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Cita:
Empezado por mosorio
Alfin he encontrado el fichero, pero no se como colgarlo en el foro, no se si laguno de los moderadores nos indique como, es un fichero zip de 5k, asi que no creo que haya problemas.
Cuando respondes a un hilo, tienes una caja con opciones adicionales ("Additional Options"), justo debajo del editor de la respuesta; busca el botón "Administrar Adjuntos" y presiónalo. Se te abrirá una nueva ventana desde donde podrás adjuntar el archivo con tu respuesta.

Cita:
Empezado por mosorio
Son rutinas en el mismo delphi donde se pasa la contraseña y la encripta para utilizarla en la inserción de la BD.
Sólo recordarte que el archivo (o su contenido) no debe tener una licencia que no permita su distribución. Si es código tuyo, convendría que añadieras un archivo indicando que es dominio público o que está sujeto a algún tipo de licencia libre: GPL, BSD, MPL, ... (a tu elección).

Saludos.
Responder Con Cita
  #11  
Antiguo 21-02-2004
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
Hola kinobi!
Antes de "meter la pata" como se dice vulgarmente, primero decirte que el codigo no es mio, pero en las fuentes estan los datos de la persona que los creo aunque no he visto niguna informafción sobre si es libre.
Dime donde lo puedo enviar para que lo analices primero y luego determinaras si lo colocas o no, del resto si el compañero los necesita, se lo enviare personalmente.

Gracias.
Responder Con Cita
  #12  
Antiguo 21-02-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Empezado por mosorio
Dime donde lo puedo enviar para que lo analices primero y luego determinaras si lo colocas o no,
ante la duda sobre su posibilidad de distribución, creo que tú eres el más indicado para ponerte en contacto con esa persona y solicitar su permiso. El enviármelo a mí sólo podría traer problemas si ese código estuviese "protegido" por algún tipo de licencia cerrada.

Saludos.

P.D. En caso de no poder tener permiso explícito del autor original, y sin una nota explícita de la posibilidad de distribución pública, creo que lo mejor es no adjuntarlo.
Responder Con Cita
  #13  
Antiguo 24-02-2004
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
Hola kinobi,
Primero dusculpa por no contestar antes, estaba configurando el pc.
El fichero cuando lo necesitaba, me lo facilito otra persona de este mismo foro, pero fue en los inicios del foro. Como dije antes, lo tenia en el buzon de yahoo, verificare esta noche para escribirle a esa persona que lo envio y preguntarle si se puede distribuir.

Gracias de todas formas.
Responder Con Cita
  #14  
Antiguo 10-10-2012
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Problemas en Delphi 2010

Cita:
Empezado por guillotmarc Ver Mensaje
El componente IBX IBSecurityService (pestaña Interbase Admin) te permite crear y modificar usuarios, sin tener que bajar al nivel de la API (lo hace el componente).

Otras colecciones de componentes (IBO, FibPlus, ...) tienes componentes similares.

Saludos.
Que tl guillotmar, buenas noches.

Investigando acerca del componente IBSecurityService, encontré un hilo donde indicas en donde se encuentra este componente. Mi problema es que me marca un error donde me dice que "This is a Interbase 7.5 function. Please upgrade to interbase 7.5 to use this functonality"....uso Firebird 1.5 y delphi 2010.....

Tu sabes si este componente es exclusivo para InterBase?

Este es el código q estoy probando
Código Delphi [-]
procedure TfrmUsuarios.btnCrearClick(Sender: TObject);
begin
    ibusuario.UserName:=edUserName.Text;
    ibUsuario.FirstName:=edFirstName.Text;
    ibUsuario.MiddleName:=edMiddleName.Text;
    ibUsuario.LastName:=edLastName.Text;
    ibUsuario.Attach;
    ibUsuario.AddUser;
    ibUsuario.Detach;
end;

Saludos y gracias de antemano por tu tiempo....
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #15  
Antiguo 13-10-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
Hola, yo utilizo ( más o menos ) el siguiente código que sirve tanto para Firebird como para Interbase. La única diferencia, en el caso de firebird, es que si le das permisos a un usuario para mantener usuarios, debes introducir en la conexión el role RDB$ADMIN. En el caso de interbase, con dar permisos de lectura/escritura/borrado a un usuario en la tabla de usuarios de admin.ib es suficiente, para que pueda administrar cuentas de usuario.

Código:
 
      with TIBSecurityService.Create( nil ) do
           try
               ServerName := 'localhost';
               LoginPrompt := False;
               Params.Add( 'user_name=' + UsuarioAdministrador );
               Params.Add( 'password=' + UsuarioAdministradorClave;
               if( Config.Conexiones.ConexionActiva.EsFirebird25Superior and
                   ( AnsiCompareText( UsuarioAdministrador, 'SYSDBA' ) <> 0 ) )then
                  SQLRole := 'RDB$ADMIN';

               Active     := True;
               FirstName  := UsuarioNombre;
               MiddleName := '';
               LastName   := UsuarioApellidos;
               UserID     := 0;
               GroupID    := 0;
               UserName   := Usuario;
               Password   := UsuarioClave;
 
              case TipoAccion of
                  1: AddUser;
                  2,4: ModifyUser;
                  3: DeleteUser;
              end
           finally
              Free;
           end;
__________________
Un saludo, Jesus García
Responder Con Cita
  #16  
Antiguo 16-10-2012
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Poder: 0
Leopard2 Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Que tl guillotmar, buenas noches.

Investigando acerca del componente IBSecurityService, encontré un hilo donde indicas en donde se encuentra este componente. Mi problema es que me marca un error donde me dice que "This is a Interbase 7.5 function. Please upgrade to interbase 7.5 to use this functonality"....uso Firebird 1.5 y delphi 2010.....

Tu sabes si este componente es exclusivo para InterBase?

Saludos y gracias de antemano por tu tiempo....
Yo también estoy investigando el tema y lo que me muestra la ayuda de delphi (7) es que hay que tener instalado Interbase, por lo que no estoy seguro de si sirva con firebird.



Saludos
Responder Con Cita
  #17  
Antiguo 16-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cuando se creó ese componente ni siquiera existía firebird, así que la compatibilidad es algo difícil que exista, salvo con firebird 1.0 que era lo mismo que interbase 6.0
Responder Con Cita
  #18  
Antiguo 20-10-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 20
cointec Va por buen camino
Yo utilizo el componente con ib 7.5, 2007, 2009, XE y con FB 1.0 y 2.5 sin problema, tal y como he mostrado anteriormente. Tibsecurityservice utiliza services API que esta implementado en todas las versiones. FB 2.1 también lo debe soportar
__________________
Un saludo, Jesus García
Responder Con Cita
  #19  
Antiguo 20-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por cointec Ver Mensaje
Yo utilizo el componente con ib 7.5, 2007, 2009, XE y con FB 1.0 y 2.5 sin problema, tal y como he mostrado anteriormente. Tibsecurityservice utiliza services API que esta implementado en todas las versiones. FB 2.1 también lo debe soportar
Pues si eso es así, entonces está claro que la compatibilidad en ese aspecto se ha mantenido
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:16:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi