PDA

Ver la Versión Completa : Crear Usuarios en Firebird


kpss8m
18-02-2004, 16:25:37
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.

Gydba
18-02-2004, 17:22:49
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.

mosorio
18-02-2004, 17:28:08
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.

kinobi
18-02-2004, 17:50:41
Hola,

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.

mosorio
18-02-2004, 17:53:27
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

kpss8m
18-02-2004, 18:21:39
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

guillotmarc
18-02-2004, 18:29:15
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.

kpss8m
18-02-2004, 18:55:29
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.

mosorio
20-02-2004, 21:57:49
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.

kinobi
21-02-2004, 08:56:09
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.

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.

mosorio
21-02-2004, 16:41:51
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.

kinobi
21-02-2004, 16:49:17
Hola,

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.

mosorio
24-02-2004, 09:49:42
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.

mRoman
10-10-2012, 07:07:36
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

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

cointec
13-10-2012, 14:25:36
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.


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;

Leopard2
16-10-2012, 16:52:36
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.

http://i47.tinypic.com/33oty5g.jpg

Saludos

Casimiro Notevi
16-10-2012, 17:16:15
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

cointec
20-10-2012, 00:46:30
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

Casimiro Notevi
20-10-2012, 01:05:24
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 :)