Club Delphi  
    Paypal   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 23-02-2009
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 20
Nasca Va por buen camino
Cita:
Empezado por GustavoCruz Ver Mensaje
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...
Para asignar el rol investiga la sentencia GRANT, pero así por encima algo como esto:

sqldPermisos.CommandText := 'GRANT '+rol+' TO '+usuario;

Como ves también lo hago mediante ExecSQL()

Con respecto a la consulta:

Código SQL [-]
select (UP.RDB$USER) as USER_NAME,  (UP.RDB$RELATION_NAME) as ROL, rd.ROLE_DESCRIPCION 
from RDB$USER_PRIVILEGES UP left outer join RDB$RD rd on(UP.RDB$RELATION_NAME = rd.RDB$ROLE_NAME) 
where UP.RDB$PRIVILEGE = 'M' and UP.RDB$OBJECT_TYPE = 13 
order by UP.RDB$RELATION_NAME'

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.
Responder Con Cita
  #2  
Antiguo 24-02-2009
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 23
rretamar Va camino a la famarretamar Va camino a la fama
Muy buen aporte. Muy útil.

Saludos y gracias !!!!
Responder Con Cita
  #3  
Antiguo 27-02-2009
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
GustavoCruz Va por buen camino
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...
Responder Con Cita
  #4  
Antiguo 27-02-2009
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 20
Nasca Va por buen camino
Lo siento no lo he probado, mira la estructura de tablas por si cambia algún campo.
Responder Con Cita
  #5  
Antiguo 02-03-2009
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 23
defcon1_es Va por buen camino
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>
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #6  
Antiguo 03-03-2009
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
GustavoCruz Va por buen camino
Smile

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
Responder Con Cita
  #7  
Antiguo 04-03-2009
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 23
defcon1_es Va por buen camino
Hola Gustavo, te lo puse para que lo ejecutaras desde la linea de comandos, pero desde delphi, yo hago esto:
Código Delphi [-]
ShellExecute_AndWait(
    PChar(ExtractFilePath(GetIBServerDataBase)+'bin\gsec.exe'),
    PChar('-USER SYSDBA -PASSWORD '+DatosSesion.Password+
    ' -modify '+Nombre+' -pw '+Clave),
    PChar(ExtractFilePath(GetIBServerDataBase)+'bin'));
// 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
Código Delphi [-]
function GetIBServerDataBase:string;
var Reg:TRegistry;
    FbsecuriyFile, FbsecuriyFile2, FbISC4: String;
begin
  Reg:=TRegistry.create;
  try
    Reg.Access:=KEY_READ;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    if Not reg.OpenKey('SOFTWARE\Firebird Project\Firebird Server\Instances',false)
    then begin
      if Not reg.OpenKey('Software\FireBirdSQL\FireBird\CurrentVersion',false)
      then if Not reg.OpenKey('Software\Borland\InterBase\CurrentVersion',false)
           then if Not reg.OpenKey('Software\InterBase Corp\InterBase\CurrentVersion',false)
                then Raise Exception.Create('Interbase no está instalado en este equipo');
      FbsecuriyFile:=reg.ReadString('RootDirectory');
    end
    else begin
      FbsecuriyFile:=reg.ReadString('DefaultInstance');
    end;
    if Length(FbsecuriyFile)<=0
    then Raise Exception.create('Interbase no está instalado en este equipo');

    if FbsecuriyFile[length(FbsecuriyFile)]='\'
    then FbsecuriyFile:=Copy(FbsecuriyFile,1,Length(FbsecuriyFile)-1);
    FbISC4 := FbsecuriyFile + '\isc4.gdb';
    FbsecuriyFile2 := FbsecuriyFile + '\security2.fdb';
    FbsecuriyFile := FbsecuriyFile + '\security.fdb';
    if FileExists(FbsecuriyFile2)
    then Result := FbsecuriyFile2
    else if FileExists(FbsecuriyFile)
         then Result := FbsecuriyFile
         else if FileExists(FbISC4)
              then Result := FbISC4
              else Result := InputBox('No se encuentró la B.D. de USUARIOS de InterBase/FireBird.',
                                      'Teclee la ruta completa del fichero "security2.fdb", "security.fdb" o "isc4.gdb"',
                                      'C:\Archivos de programa\Firebird\FireBird_2_0\security2.fdb');
  finally
    Reg.free;
  end;
end;
// este procedimiento ejecuta un programa externo
Código Delphi [-]
procedure ShellExecute_AndWait(const FileName, Params, RutaDirectorio: string);
var
  exInfo: TShellExecuteInfo;
  Ph: DWORD;
begin
  FillChar(exInfo, SizeOf(exInfo), 0);
  with exInfo do
  begin
    cbSize       := SizeOf(exInfo);
    fMask        := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
    Wnd          := GetActiveWindow();
    lpVerb       := 'open';
    lpParameters := PChar(Params);
    lpFile       := PChar(FileName);
    lpDirectory  := PChar(RutaDirectorio);
    nShow        := SW_HIDE; //SW_SHOWNORMAL;
  end;
  if ShellExecuteEx(@exInfo)
  then Ph := exInfo.HProcess
  else begin
    ShowMessage(SysErrorMessage(GetLastError));
    Exit;
  end;
  while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
    Application.ProcessMessages;
  CloseHandle(Ph);
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear Usuarios en Firebird kpss8m Firebird e Interbase 18 20-10-2012 02:05:24
Usuarios en FireBird mRoman Conexión con bases de datos 7 28-08-2008 14:47:18
Usuarios y seguridad en Firebird dango Firebird e Interbase 4 11-07-2006 19:13:26
usuarios con IB Expert for Firebird ale21alito Conexión con bases de datos 2 03-04-2005 20:08:12
Usuarios en Firebird pzhero Firebird e Interbase 4 03-05-2004 23:30:44


La franja horaria es GMT +2. Ahora son las 21:55:43.


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