PDA

Ver la Versión Completa : crear usuarios firebird desde delphi


anubis
06-06-2014, 20:43:05
Hola amigos,

Estaba viendo información al respecto, pero poco he encontrado que me ilumine.

Ya vi que permisos si los puedo asignar a usuarios desde codigo delphi, pero me intersaba saber si puedo crear usuarios desde aplicación delphi.

Tambien he visto que algunos no recomiendan crear en la base de datos una tabla para usuarios (imagino que por las contraseñas).

La otra forma que estoy viendo es en la que se basa la pregunta.

Si esta claro que para entrar la primera vez tendria que ser con el usuario sysdba.

He intentado asignar a un query la tabla rdb$user_privileges, pero al intentar sacarla con un dbgrid, se me cuelga y se cierra lazarus.

Debo de decir que la base de datos esta en un servidor aparte.

Gracias

ecfisa
07-06-2014, 01:47:50
Hola anubis.

Revisa si este enlace te ayuda sobre como crear usuarios y roles: GRANT desde Delphi (http://www.clubdelphi.com/foros/showthread.php?t=81691)

Saludos :)

anubis
07-06-2014, 02:21:13
Gracias ecfisa, ya lo habia visto ;).
Voy a ver si saco algo en claro de ahi para usarlo en un dbgrid.

Entiendo que en este caso se puede usar cualquier query.

que por cierto uso las librerias zeos.

anubis
07-06-2014, 03:21:23
Hola,

El de crear rol si funciona, el que no funciona es:


with datamodule1.ZQuery1 do
begin
close;
sql.Clear;
sql.add('create user pepito password ''12345678''');
SQL.Add('FIRSTNAME ''JOSE'' MIDDLENAME ''APOLONIO'' LASTNAME ''PEREZ''');
execsql;
end;

duilioisola
07-06-2014, 10:39:40
Según Firebird esto solo lo pueden hacer usuarios que tengan el rol de administrador.

Deberías generar una conexión como SYSDBA y crear/modificar el usuario.

Este es el enlace (http://www.firebirdsql.org/refdocs/langrefupd25-security-sql-user-mgmt.html)

Description: Firebird 2.5 and up provide SQL statements for user account management. Except in one case, they are only available to the following privileged users:


•SYSDBA;


•Any user who has been granted the RDB$ADMIN role in the security database and at least one other database. The user must specify the role when connecting to the database.


•If AUTO ADMIN MAPPING is on for the security database: any Windows administrator connected to any database using trusted authentication without specifying a role. Whether AUTO ADMIN MAPPING is on in the connection database is unimportant.


Non-privileged users can only use ALTER USER, to change their own account details.

anubis
07-06-2014, 16:14:27
Gracias por responder.

En realidad si me conecto con sysdba y masterkey porque estoy en fase de desarrollo.
Estoy usando firebird 1.5 porque se va a instalar en un sistema que ya lo tiene instalado. Librerias zeos y lazarus.

gracias de nuevo

ecfisa
07-06-2014, 16:30:21
Hola anubis.

...
Estoy usando firebird 1.5 porque se va a instalar en un sistema que ya lo tiene instalado.
...

A... tal vez no funcione de ese modo en esa versión. Como comenté en el enlace que te puse, los ejemplos fueron probados sobre la versión 2.5, revisa si la versión 1.5 soporta esa sintáxis (o esa acción).

Saludos :)

anubis
07-06-2014, 17:00:10
Gracias lo mirare,

Si hay algo curioso que no entiendo, quiza venga por ahi la cosa.

si abro la linea de comandos de windows 7 ejecutando como administrador y le pongo:

gsec -user sysdba -password masterkey

me sale que unavailable database y unable to open database. Ya lo habia hecho antes con otras versiones superiores de firebird y no hubo nunca problema pero con esta si.
Esta muy raro no?.

Si tenia instalada antes la 2.5, luego la quite para instalar la 1.5, pense que que era por conflicto, pero borre toda huella de la 2.5.

el caso que con flamerobin no tengo ningun problema

el caso que tengo que usar firebird 1.5 porque ya esta instalada en la maquina donde voy a poner la aplicacion y no se puede cambiar

anubis
08-06-2014, 00:21:28
efectivamente, con la version 1.5 y 2.1 no se pueden crear usuarios a nivel sql, con la version 2.5 si.
No entiendo muy bien como lo hace flamerobin, pero bueno.

Al respecto del gsec, en la 2.5 no hay problema desde consola, con las otras dos versiones anteriores si.

Lo unico tengo una pregunta rapida.

La maquina donde esta isntalado el firebird 1.5, no hace de servidor de nada, sino que hay un programa que accede a otro servidor que si tiene la 1.5, si puedo quitar la 1.5 y ponerle la 2.5 y podra seguir accediendo la aplicacion al servidor que si tiene la 1.5 sin ningun problema aunque en local este la 2.5?.

gracias

Casimiro Notevi
08-06-2014, 00:27:01
No es conveniente, aunque pueda funcionar. En todos debe estar la misma versión.

anubis
08-06-2014, 02:23:48
gracias.
el local 2.5 la app accede al servidor con 1.5.
normalmente no tendría q haber en local ninguno solo la librería para acceder