Nuevos Usuarios en Firebird
Hola amigos del foro, actualmente estoy desarrollando una aplicación y me gustaría saber cómo puedo crear un usuario por código desde delphi y asignarle un rol, de ante mano muchas gracias por todos sus aportes.
Saludos. |
Crear el usuario lo hago conectándome a la base de datos security.fdb y usando una sentencia como esta:
Hay que encriptar la password usando UnixCrypt:
Espero que te sirva. |
Hola Nasca, gracias por tu aporte, me funcionó perfectamente, ahora me gustarìa saber còmo le asigno un rol a usuario y de paso còmo hago la consulta que me muestre los roles que tiene una base de datos...
Gracias nuevamente por tu aporte Nasca.:) |
Cita:
sqldPermisos.CommandText := 'GRANT '+rol+' TO '+usuario; Como ves también lo hago mediante ExecSQL() Con respecto a la consulta:
Espero que te sirva, yo tengo conectado el dataset de los roles al de los usuarios como un maestro-detalle y así puedo ir viendo los roles de cada usuario. |
Muy buen aporte. Muy útil.
Saludos y gracias !!!! |
Hola nuevamente, aunque dije que me había funcionado, lo hice en una base de datos firebird 1.5, pero no me he podido conectar a security2.fdb en firebird 2.1, si aquí se hace de otro modo... te gradecería muchísimo que me no indicaras.
De ante mano muchas gracias... |
Lo siento no lo he probado, mira la estructura de tablas por si cambia algún campo.
|
Hola.
Lo de conectarse directamente a la bd de seguridad de Firebird, sólo es válido para versiones 1.x, a partir de la version 2.0 esto ya no es posible. Para dar de alta un usuario en Firebird 2.x, debes usar la herramienta gsec: gsec.exe -USER SYSDBA -PASSWORD masterkey -add <nombre_usuario> -pw <Clave_usuario> Para modificar un usuario: gsec.exe -USER SYSDBA -PASSWORD masterkey -modify <nombre_usuario> -pw <Clave_usuario> Para borrar un usuario: gsec.exe -USER SYSDBA -PASSWORD masterkey -delete <nombre_usuario> |
Hola dfcon_1 te agradezco la información, pero no sé como ejecutar los parámetros, lo escribí como me mostrarte en tu post y me dio esto:
GSEC> user SYSDBA - PASSWORD masterkey - add gustavo - pw lucenys; invalid switch specified error in switch specifications invalid switch specified in interactive mode GSEC> :( me gustaría que me mostraras la forma de crear el nuevo usuario Gustavo Cruz |
Hola Gustavo, te lo puse para que lo ejecutaras desde la linea de comandos, pero desde delphi, yo hago esto:
// Con esta funcion, averigüo la ruta donde está el gsec.exe // mirando en el registro de windows las distintas claves, según el motor y // version del mismo // este procedimiento ejecuta un programa externo
|
Hola defcon1_es, tu sabras disculpar mi torpeza pero resulta que aún no logro dar con el asunto...
No sé para qué utilizas la función GetIBServerDataBase? y tampoco sé cuál es el programa externo que ejecutas y para qué lo haces? en cuanto a la sentencia para dar de alta al nuevo usuario, es error que me mostraba al principio era por separar los guiones, lo hice sin separar y me mostró este resultado: "invalid switch specified in interactive mode" la línea la escribí así: "USER SYSDBA -PASSWORD masterkey -add gustavo -pw lucenys" Gracias por tu ayuda que es sumamente valiosa |
Cita:
Cita:
Teclea esto desde la consola de comandos (tipo ms-dos), o desde el boton de Inicio de windows, opcion "Ejecutar": C:\Archivos de programa\Firebird\Firebird_1_5\bin\gsec -USER SYSDBA -PASSWORD masterkey -add gustavo -pw lucenys |
Hola defcon1_es, ciertamente te agradezco mucho la ayuda que me haz prestado y la paciencia que haz tenido. He comprendido, sólo hasta hoy, tu código, y me ha funcionado perfectamente...
Gracias a ti y a todos los que enviaron sus aportes :):):):) |
Solo para agregar algo:
uso los componentes FIBPlus y este tiene uno TpFIBSecurityService paleta FIBPlusServices el cual se encarga de adminstrar usuarios. las rutinas para crear, eliminar o modificar son estas: Crear usuario:
Modificar usuario:
Borrar usuario:
Supongo y otros componentes libres como zeos tienen implementada esta funcion. Como referencia te dejo el link Codigo Fuente |
La franja horaria es GMT +2. Ahora son las 22:05:44. |
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