 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 07 Ago, 2007 12:28 pm Asunto: Cambiar user_name |
|
|
¿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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 08 Ago, 2007 6:57 am Asunto: |
|
|
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 _________________
 |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 08 Ago, 2007 7:47 am Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|