Ver Mensaje Individual
  #3  
Antiguo 05-06-2008
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Reputación: 22
lbuelvas Va por buen camino
En mis aplicativos escritos en Delphi cuento con una opcion para el administrador para que asigen roles, pero el unico que puede asignar roles es el usaurio sysdba.




Simplemente selecciono el usuario y luego margo los roles en los que puede participar, para ello uso las siguientes instrucciones:

Código Delphi [-]
procedure TFrmAdministrador_Usuarios.ChkLB_RolesClickCheck(Sender: TObject);
var
  nombre_usuario,
  nombre_rol:     string;
begin
  //salirse si no se ha seleccionado algun usuario
  if ListViewMiembros.ItemIndex = -1 then begin
    ChkLB_Roles.Checked[ChkLB_Roles.ItemIndex] := not ChkLB_Roles.Checked[ChkLB_Roles.ItemIndex];
    exit;
  end;
  nombre_usuario := trim(ListViewMiembros.Selected.Caption);
  nombre_rol     := trim(ChkLB_Roles.Items.Strings[ChkLB_Roles.ItemIndex]);
  if ChkLB_Roles.Checked[ChkLB_Roles.ItemIndex] = true then
   //si esta checkado se otorga el privilegio
    _prepara_SQL(IBSQL1, 'grant  ' + nombre_rol + ' to   ' + nombre_usuario)
  else
   //no esta checkado se revoca el privilegio
    _prepara_SQL(IBSQL1, 'revoke ' + nombre_rol + ' from ' + nombre_usuario);
end;

procedure _prepara_SQL (var SQL1: TIBSQL; const cadena: string);
begin
  with SQL1 do begin
    Close;
    SQL.Clear;
    SQL.Add(cadena);
    Prepare;
    ExecQuery;
  end;
end;
__________________
Luis Fernando Buelvas T.
Responder Con Cita