Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Crear un usuario en firebird 3.0 solo para una base de datos (https://www.clubdelphi.com/foros/showthread.php?t=94145)

anubis 25-08-2019 06:54:01

Crear un usuario en firebird 3.0 solo para una base de datos
 
Buenas,


Estoy a vueltas con la creación de usuarios en firebird 3.0.
Tal y como dice engranaje en otro post, se puede crear usuarios para cada base de datos y no para el sistema firebird en general.


En la segunda es con gsec y en la primera es con isql o isql-fb, depende del sistema.


La verdad lo que intento hacer es:


Código SQL [-]
isql-fb -user sysdba -password 'masterkey' mibase
sql>create user yo password 'yo';
sql>commit;
sql>quit;


Lo que hace aqui es crear un usuario en firebird no en la base de datos mibase que es solo donde quiero que este.


Si borro un usuario de una base de datos se borra del sistema completo.
Saben si estoy haciendo algo mal?.


Según leí buscando por internet, desde la version 2.5 se puede hacer lo que busco.

Casimiro Notevi 25-08-2019 11:54:40

¿Has leido el "Firebird 3 quick start"?

No recuerdo haber leido que hubiese ahora usuarios para cada base de datos.
Yo sigo usando sysdba para conectar, como siempre.

anubis 25-08-2019 22:34:40

Hola,


Según reza en esta página, dice que desde la versió 2.5 se puede hacer:

https://firebird21.wordpress.com/201...ando-usuarios/


Cita:

Desde Firebird 2.5 hay una forma de establecer que un usuario se conecte solamente a la Base de Datos en la cual se lo agregó. Para que pueda conectarse a dos (o más) bases de datos entonces habrá que agregarlo individualmente a esas dos (o más) bases de datos. El usuario que puede agregar nuevos usuarios es SYSDBA o cualquier otro usuario que tenga el rol RDB$ADMIN. La forma de hacerlo es la siguiente:

En firebird 3 quick start también viene algo parecido:


Cita:

Adding Firebird user accounts Firebird allows the creation of many different user accounts. Each of them can own databases and also have various types of access to databases and database objects it doesn't own.


Por eso comentaba, un usuario que no tiene permisos para una database si le permite conectarse pero no puede acceder a las tablas, y la verdad, no se como se maneja eso porque sale un aviso en mi aplicación que no tiene permiso para acceder a la tabla cuentas, salvo con un except, pero no se donde compararlo.


Gracias

Casimiro Notevi 26-08-2019 10:39:00

Ahí dice que te conectas a la BD como sysdba y usas: create user alguien password 'secreto';

¿No te funciona así?

mRoman 26-08-2019 17:07:44

Bueno la creación de usuarios y los privilegios del usuario sobre las tablas de la BD, es diferente cosa.

Necesitar dar permisos de acceso a las tablas.

anubis 29-08-2019 19:02:07

Cita:

Empezado por Casimiro Notevi (Mensaje 533258)
Ahí dice que te conectas a la BD como sysdba y usas: create user alguien password 'secreto';

¿No te funciona así?

hombre si, así me funciona porque cree un usuario sysdba en cada base de datos a través de isql-fb y luego un usuario.


La cuestión es que si un usuario quiere acceder a una base de datos que no tiene permisos si le deja conectarse pero no acceder, pensé que con el nuevo procedimiento de firebird 3.0 no creaba el usuario en security sino solo en la base de datos.


Viendo todo eso, hay forma, independiente de usar un excepción cuando salga el mensaje diciendo que no tiene acceso a las tablas, hay alguna otra forma?.
Saludos

Casimiro Notevi 29-08-2019 20:10:07

Todavía no he entendido el problema. Me parece que dices que un usuario que no existe en una base de datos, puede conectar a esa BD, pero no puede acceder a la BD. ¿Es eso? porque dudo que un usuario inexistente pueda conectar a la BD.

movorack 29-08-2019 22:17:47

En este documento dice que puedes establecer Security Databases por cada DB que manejes. Como los usuarios se almacenan en las Security Databases. Entonces conseguirías lo que quieres.


La franja horaria es GMT +2. Ahora son las 08:52:34.

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