Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cambiar user_name

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cambiar user_name Responder citando


¿Cómo se hace para cambiar el usuario y/o la password de una base de datos creada con Firebird 2.0?. La estoy creando con unos datos diferentes de sysdba y masterkey y me da el error de la imagen. Para conectar:
Código:
IBDatabase->Connected = false;
IBDatabase->Params->Clear();
IBDatabase->DatabaseName = ExtractFilePath(Application->ExeName) + "Tablas\\Database.gdb";
IBDatabase->Params->Add("user_name=angel");
IBDatabase->Params->Add("password=matilla");
IBDatabase->Params->Add("lc_ctype=WIN1252");
IBDatabase->SQLDialect = 3;
IBDatabase->Connected = true;

Y en IBDatabase->Params:
Código:
user_name=angel
password=matilla
lc_ctype=WIN1252

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola Angel: lamentablemente no se puede Borraral usuario SYSDBA lo unico posible es camibar la contraseña de masterkey a "otra" diferente, pero al realizar esto debes asegurarte que todos los programas actualicen o se logeen con la nueva contraseña de SYSDBA

para insertar usuarios dentro de la base de datos existen 2 componentes primordiales.

Código:
TIBSecurityService1
    TIBServerProperties1
   


El segundo te sirve para identificar las propiedades del servidor, cuantas tablas,cuantos usuarios conectados, etc etc

el primero es el que se usa para cambiar la informacion de los usuarios definidos dentro de la Base de datos.

para conectarte puedes usarlo de la siguiente manera:
(tengo 2 TEdit para insertar el nombre "txtAdmin" y el password "txtAdminPass")

Código:
   this->IBSecurityService1->Active=false;
   this->IBSecurityService1->LoginPrompt = false;
   this->IBSecurityService1->Params->Clear();
   this->IBSecurityService1->Params->Add("user_name="+this->txtAdmin->Text.Trim());
   this->IBSecurityService1->Params->Add("password="+this->txtAdminPass->Text.Trim());
   this->IBSecurityService1->Active=true;


Para borrar un usuario:

Código:
   this->IBSecurityService1->UserName = "nombre usuario";
   this->IBSecurityService1->DeleteUser();



para modificar la clave el usuario
Código:
// traer el nombre del usuario al cual se quiere modificar
   this->IBSecurityService1->UserName = "nombre usuario";
   // pones nuevo pass
   this->IBSecurityService1->Password = "Nuevo password";
   // y se modifica
   this->IBSecurityService1->ModifyUser();


y para insertar a un usuario se usa de la siguiente manera (nota: debes estar conectado de manera inicial con SYSDBA - y - mas..t..ey)

Código:
// datos de personales en la base
      this->IBSecurityService1->UserName = this->txtNombre->Text;
      this->IBSecurityService1->FirstName = this->txtApellido->Text;
      this->IBSecurityService1->MiddleName = this->txtApellido->Text;
      this->IBSecurityService1->LastName = this->txtApellido->Text;
      // para crear la cuenta del usuario
      this->IBSecurityService1->UserName = this->txtUser->Text;
      this->IBSecurityService1->Password = this->txtUserPass->Text;
        this->IBSecurityService1->AddUser();



pero eso no es todo, a parte de crear al usuario debes asignarle a travez de una sentencia SQL los privilegios de Administración, para que el usuario que has puesto, pueda hacer uso de las bases de datos que existen o se encuetran registradas en Firebird / Interbase, con algo como esto. (puedes usar un IBQuery o TQuery


Código:
this->IBQuery1->Close();
    this->IBQuery1->Params->Clear();
    this->IBQuery1->SQL->Add("GRANT SUPER_USUARIO TO "+this->txtUser->Text.Trim()+" WITH ADMIN OPTION");
    this->IBQuery1->Prepare();
    this->IBQuery1->Open();



No confundir el Nombre (txtAdmin) del usuario, con el UserName (txtUser)
No confundir el password para conectarse con el password asignado en txtUserPass
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Yo no hablaba de eliminar el usuario SYSDBA, pero si de crear uno nuevo; ahora, con lo que me has puesto, veo que ha de ser como una función añadida a la aplicación. Muchas gracias por el código César; no me va a valer para la aplicación en la que hacía la pregunta pero sí para otra que va a ser multiusuario.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.