 |
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: Vie 18 Sep, 2009 9:59 am Asunto: ¿Qué misión real tiene TIBSecurityService? |
|
|
¿Qué misión real tiene este componente? La aplicación que tengo entre manos va a ser multiusario y los mismo los tengo controlados en una tabla de usuarios de la propia base de datos, pero tal vez tenga que usar este componente para gestionar los usuarios autorizados. _________________ 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: Sab 19 Sep, 2009 5:20 am Asunto: |
|
|
Permite Crear usuarios de la base de datos a la cual te conectas, los usuarios pueden tener el mismo Rol que 'Sysdba'
un ejemplo para agrear un usuario con privilegios iguales a Sysdba es el siguiente
| Código: | //para agregar a la persona como usuario
if(this->IBSecurityService1->Active)
{
// datos de personales en la base
this->IBSecurityService1->FirstName = "Angel";
this->IBSecurityService1->MiddleName = "";// puede ir vacio
this->IBSecurityService1->LastName = "Matilla";
// para crear la cuenta del usuario
this->IBSecurityService1->UserName = "Administrador";
this->IBSecurityService1->Password = "12345"; // <-- el mas seguro
this->IBSecurityService1->AddUser(); // agregamos el usuario a la base
// para asignarle el rol predeterminado al usuario,
// Usando para ello un componente TIBSql
this->IBSQL1->SQL->Clear();
this->IBSQL1->SQL->Add("GRANT SUPER_USUARIO TO "+this->IBSecurityService1->UserName+" WITH ADMIN OPTION");
this->IBSQL1->ExecSQL();
} |
En relativa, permite generar usuarios que pueden conectarse a la base de datos y otorgarles privilegios diferentes o iguales a Sysdba
Nota: para usar este componente, debes conectarte como Sysdba o como un usuario que tenga los mismos privilegios _________________
 |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Sab 19 Sep, 2009 7:53 am Asunto: |
|
|
Gracias César. Otra pregunta sobre este componente:
Entonces para poder usar la base de datos que he construido, ¿es necesario dar de alta los diversos usuarios en ella con este elemento?
Ahora los usuarios están definidos en una tabla normal de Firebird de la propia BD pero todos se conecta como SYSDBA ya que antes de identificarse los usuarios se ejecuta este código:
| Código: | Database1->Connected = false;
Database1->Params->Clear();
Database1->DatabaseName = cTablas;
Database1->Params->Add("user_name=sysdba");
Database1->Params->Add("password=masterkey");
Database1->SQLDialect = 3;
Database1->Connected = true;
Transaction1->Active = true; |
_________________ 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: Sab 19 Sep, 2009 8:23 am Asunto: |
|
|
Antes de pasar a otras cuestiones, hablemos de los "dos" tipos de usuarios.
1.- Usuarios de la Base de datos:
Este tipo de usuarios son como el Sysdba, que puede realizar las funciones de creacion, eliminacion de elementos de la base de datos (tablas, procedures, triggers, etc etc) son usuarios a los cuales se les permite administrar la base de datos, de manera directa, ese es en gran parte el uso del componente que mencionas en el mensaje de Arriba.
Si deseas que alguien accedea a modificar los elementos de tu Base de datos, bien puedes crear un programa que use el componente IBSecurityService1
2.- Usuarios del Software que se conecta a la base de datos:
Estos son los usuarios que se "conectan" a la base de datos pero no para darle mantenimiento, si no que son usuarios que a travez de tu software realizan operaciones con registros de la base de datos, para obtener resultados. consultas y cosas asi, para dar informes, albaranes, facturas, etc etc. agregar, borrar, eliminar registros, en relativa son usuarios de Tú sistema y rara vez, este tipo de usuario le interesa como se conecta, solo les interesa obtener resultados con las tablas de la base de datos.
| Angel escribió: | Gracias César. Otra pregunta sobre este componente:
Entonces para poder usar la base de datos que he construido, ¿es necesario dar de alta los diversos usuarios en ella con este elemento? |
No, pues en los 2 puntos de arriba creo que es entendible, los Usuarios que tienes en una tabla, son los que acceden por medio de tu software, en todo caso seria un usuario administrativo por software, los cuales puedes declarar usando a IBSecurityService1
Por citar algo:
Software para modificar tablas - usuario1
Software para manejar a "ciertas" tablas - usuario2
Software para imprimir datos de "ciertas" tablas - usuario3
Indicando que todos ellos han sido creados usando el componente IBSecurityService1, generalmente se usa para cambiar la clave del Sysdba por otra, y no precisamente para dar de alta a los usuarios que manejan tu sistema.
| Angel escribió: | Ahora los usuarios están definidos en una tabla normal de Firebird de la propia BD pero todos se conecta como SYSDBA ya que antes de identificarse los usuarios se ejecuta este código:
| Código: | Database1->Connected = false;
Database1->Params->Clear();
Database1->DatabaseName = cTablas;
Database1->Params->Add("user_name=sysdba");
Database1->Params->Add("password=masterkey");
Database1->SQLDialect = 3;
Database1->Connected = true;
Transaction1->Active = true; |
|
Efectivamente, pues tu software se conecta como Sysdba, y no interesa lo que haga pues las operaciones que realizan los usuarios que tienes almacenados en una tabla, no dependen de quien sea, pero tu software si depende de que "exista" un usuario para conectarse a la BD, siendo en este caso Sysdba.
Espero que estas lineas te aclaren el proceso y uso del componente, en relativa, yo he usado el componente para cambiar la clave de 'Sysdba' y/o crear un usuario administrativo para que realice otras actividades con ciertos privilegios en determinadas tablas y no en todas como lo hace 'Sysdba'
Saludos. _________________
 |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Sab 19 Sep, 2009 4:06 pm Asunto: |
|
|
Perfectamente explicado, como no podría ser menos. Desde el punto de vista del software (usuarios) es con la propia aplicación con quien he de controlar donde puede entrar o no cada uno de los usuarios.
Muchísimas gracias; creo que me ha quedado perfectamente claro. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 21 Sep, 2009 10:53 am Asunto: |
|
|
Estudiando este componente (¡Qué poca documentación hay sobre él en la web!) he visto que tiene una propiedad SQlRole, pero que es un simple StringList. Por el nombre que tiene da la impresión que a través de la misma se pueden limitar las atribuciones de cada usuario, ¿estoy equivocado?
Por otra parte, ¿dónde se guardan los usuarios que se vayan dando de alta con este componente? _________________ 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: Lun 21 Sep, 2009 2:50 pm Asunto: |
|
|
Aún para mi, desconozco esa información pero usando la siguiente sintaxis en algun programa como "Firebird Maestro" o el EMS en la parte de Script (la ventana que permite introducir sentencias SQL), puedes escribir lo siguiente cuando estes conectado a la base de datos.
| Código: | Select RDB$Relation_Name
from RDB$Relations |
Esto te presenta la información relacionada tanto de las tablas que tiene tu base de datos, así como las tablas de Sistema que Firebird Crea cada vez que generas una base de datos.
Una base de datos aún cuando no tenga tablas, ni procedures, ni triggers vamos ningun elemento, usando esta sentencia puedes revisar las "Tablas de Sistema" que se crean automáticamente en ella.
En relativa, si la información de donde se "aloja" sysdba... considero una buena manera de no saberlo, ya que puede haber riesgo de corromper tu base de datos por otras personas.
Saludos. _________________
 |
|
| 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.
|