4D v16

Configuración del servidor SQL de 4D

Inicio

 
4D v16
Configuración del servidor SQL de 4D

Configuración del servidor SQL de 4D  


 

 

El servidor SQL de 4D permite el acceso externo a los datos almacenados en la base 4D. Para las aplicaciones de terceras partes y las aplicaciones 4D, este acceso se realiza mediante un driver ODBC 4D. También es posible realizar conexiones directas entre una aplicación cliente 4D y 4D Server. Todas las conexiones se hacen usando el protocolo TCP/IP.

El servidor SQL de una aplicación 4D puede detenerse o iniciarse en cualquier momento. Además, por motivos de rendimiento y seguridad, puede especificar el puerto TCP y la dirección IP de escucha y restringir las posibilidades de acceso a la base de datos 4D.

El acceso externo al servidor SQL de 4D puede efectuarse vía ODBC (todas las configuraciones), o directamente (aplicación cliente 4D conectado a 4D Server). Esto se resume en el siguiente diagrama:


En azul: conexiones vía ODBC
En rojo: conexiones directas

A nivel de búsquedas, la apertura de una conexión externa o vía ODBC se lleva a cabo utilizando el comando SQL LOGIN. Para mayor información, consulte la descripción de este comando.

  • Conexiones vía ODBC: 4D ofrece un driver ODBC que permite a toda aplicación de terceros (hoja de cálculo de tipo Excel®, otros DBMS, etc.) o cualquier otra aplicación 4D conectarse al servidor SQL de 4D. El driver ODBC 4D debe instalarse en la máquina de la parte SQL cliente. La instalación y configuración del driver ODBC 4D se detalla en otro manual.
  • Conexiones directas: sólo una aplicación 4D Server puede responder a las consultas SQL directas procedentes de otros aplicaciones 4D. Del mismo modo, sólo las aplicaciones 4D de gama  "Profesional" pueden abrir una conexión directa a otra aplicación 4D. Durante una conexión directa, el intercambio de datos se efectúa automáticamente en modo sincrónico, que elimina las cuestiones relacionadas con la sincronización y la integridad de los datos. Sólo una conexión está autorizado por proceso. Si desea establecer varias conexiones simultáneas, debe crear tantos procesos como sea necesario. Las conexiones directas, puede asegurarse seleccionando la opción Activar TLS del lado objetivo de la conexión (4D Server) en la página "SQL" de las Propiedades de la base. Las conexiones directas sólo están autorizadas por 4D Server si el servidor SQL está activo. La principal ventaja de las conexiones directas es que se aceleran los intercambios de datos.

El servidor SQL de 4D puede iniciarse o detenerse de tres formas:

  • Manualmente, utilizando los comandos Arrancar el servidor SQL en el menú Ejecutar de la aplicación 4D:

    Nota: con 4D Server, se puede acceder a este comando como botón en la Página Servidor SQL.
    Cuando se lanza el servidor, esta opción de menú cambia a Detener el servidor SQL.
  • Automáticamente al inicio de la aplicación, vía las Propiedades de la base. Para hacer esto, muestre la página SQL y seleccione la opción Lanzar el servidor SQL al inicio:
  • Por programación, usando los comandos START SQL SERVER y STOP SQL SERVER (tema “SQL”).
    Cuando el servidor SQL está detenido (o cuando no se ha iniciado), 4D no responderá a ninguna consulta SQL externa.
    Nota
    : detener el servidor SQL no afecta el funcionamiento interno del motor SQL de 4D. El motor SQL siempre está disponible para las consultas internas.

Es posible configurar los parámetros de publicación del servidor SQL integrado de 4D. Estos parámetros se encuentran en la página SQL de las Propiedades de la base:

  • La opción Lanzar el servidor SQL al inicio permite iniciar el servidor SQL al inicio de la aplicación.
  • Puerto TCP: por defecto, el servidor SQL de 4D responde a las peticiones en el puerto TCP 19812. Si este puerto ya está siendo utilizado por otro servicio o si sus parámetros de conexión requieren de otra configuración, puede cambiar el puerto TCP utilizado por el servidor SQL de 4D.
    Notas
    :
    -
    si pasa 0, 4D utilizará el número de puerto TCP por defecto, es decir 19812.
    - Puede definir este valor por programación utilizando el selector SQL Server Port ID del comando SET DATABASE PARAMETER.
  • Dirección IP: permite definir la dirección IP de la máquina en la que el servidor SQL debe procesar las consultas SQL. Por defecto, el servidor responderá a todas las direcciones IP (opción Todas).
    La lista desplegable "Dirección IP" contiene automáticamente todas las direcciones IP presentes en la máquina. Cuando se selecciona una dirección en particular, el servidor sólo responderá a las consultas enviadas a esta dirección.
    Esta funcionalidad está dirigida a las aplicaciones 4D alojadas en máquinas con varias direcciones TCP/IP.
    Notas
    :
    • Del lado del cliente, la dirección IP y el puerto TCP del servidor SQL para que la aplicación se conecte deben estar correctamente configurados en la definición de la fuente de datos ODBC.
    • A partir de 4D v14, el servidor SQL soporta la notación de direcciones IPv6. El servidor acepta indiferentemente las conexiones IPv6 o IPv4 cuando la configuración "Dirección IP" de escucha del servidor es Todas. Para obtener más información, consulte la sección Soporte de IP v6.
  • Activar TLS: esta opción indica si el servidor SQL debe activar el protocolo seguro TLS para el procesamiento de las conexiones SQL.
    Note que cuando este protocolo está activo, la palabra clave ":ssl" debe añadirse al final de la dirección IP del servidor SQL cuando abra una conexión vía el comando SQL LOGIN.
    Por defecto, el servidor SQL utiliza los archivos internos para la llave y certificado TLS.
    Sin embargo puede utilizar los elementos personalizados: para hacer esto, sólo copie sus propios archivos key.pem y cert.pem en la siguiente ubicación: MiBase/Preferencias/SQL (donde "MiBase" representa la carpeta/paquete de la base).
  • Autorizar las peticiones Flash Player: esta opción permite activar el mecanismo de soporte a las solicitudes Flash Player por el servidor SQL de 4D. Este mecanismo se basa en la presencia de un archivo, llamado "socketpolicy.xml," en la carpeta preferencias de la base (Preferencias/SQL/Flash/). Este archivo es requerido por Flash Player para permitir conexiones entre dominios o conexiones por tomas de aplicaciones Flex (Web 2.0).
    En la versión anterior de 4D, este archivo se tenía que agregar manualmente. A partir de ahora, la activación se realiza utilizando la opción Autorizar las peticiones Flash Player: al activar esta opción, las peticiones Flash Player son aceptadas y un archivo "socketpolicy.xml" genérico se crea para la base si es necesario.
    Nota
    : es posible definir la codificación utilizada por el servidor SQL para el procesamiento de solicitudes externas utilizando el comando 4D SQL SET OPTION.

Por razones de seguridad, es posible controlar las acciones que las consultas externas enviadas al servidor SQL pueden realizar en la base de datos 4D. Este control se efectúa en dos niveles:

  • A nivel del tipo de acción autorizada,
  • A nivel del usuario que efectúa la consulta.
    Estos ajustes se pueden hacer en la página SQL de las Propiedades de la base.

Nota: puede utilizar el Método de base On SQL Authentication para controlar de manera personalizada las peticiones externas al motor SQL de 4D.

Los parámetros definidos en esta caja de diálogo se aplican al esquema por defecto. El control de los accesos externos a la base se basan en el concepto de esquemas SQL (ver la sección Implementaciones del motor SQL de 4D). Si no crea esquemas personalizados, el esquema por defecto incluye todas las tablas de la base. Si crea otros esquemas con los derechos de acceso específicos y los asocia con las tablas, el esquema por defecto sólo incluirá las tablas que no están incluidas en los esquemas personalizados.

Puede configurar tres tipos distintos de acceso al esquema por defecto vía el servidor SQL:

  • Sólo lectura (datos): acceso ilimitado en lectura a todos los datos de las tablas de la base pero no está permitido agregar, modificar o eliminar registros, ni modificar la estructura de la base.
  • Lectura/escritura (datos): acceso en lectura y escritura (añadir, modificar y borrar) a todos los datos de las tablas de base, pero no la modificación de la estructura de la base.
  • Completo (datos y estructura): acceso en lectura y escritura (añadir, modificar y borrar) a todos los datos de las tablas de la base, así como a la modificación de la estructura de la base (tablas, campos, relaciones, etc.).

Puede designar un conjunto de usuarios para cada tipo de acceso. Hay tres opciones disponibles para este propósito:

  • <Persona>: si selecciona esta opción, el tipo de acceso será rechazado para todas las consultas, independientemente de su origen. Este parámetro se puede utilizar incluso cuando el sistema de gestión de acceso por contraseñas de 4D no esté activo.
  • <Todos>: si selecciona esta opción, el tipo de acceso se aceptará para todas las consultas (sin límites).
  • Grupo de usuarios: esta opción permite designar un grupo de usuarios autorizados a efectuar el tipo de acceso asociado. Esta opción requiere que la gestión de contraseñas de 4D esté activada. El usuario al origen de las consultas da su nombre y contraseña durante la conexión al servidor SQL.

ADVERTENCIA: cada tipo de acceso está definido de forma independiente de los demás. Más específicamente, si sólo asigna el tipo de acceso Sólo lectura a un grupo esto no tendrá ningún efecto ya que este grupo, así como también todos los demás van a seguir beneficiándose del acceso Lectura/escritura (asignado a <Todo el mundo> de forma predeterminada). Con el fin de definir un acceso Sólo lectura, también es necesario el acceso Lectura/escritura.

ADVERTENCIA: este mecanismo se basa en las contraseñas de 4D. Para que el control de acceso al servidor SQL tenga efecto, el sistema de contraseñas de 4D debe estar activo (una contraseña debe asignarse al Diseñador).

Nota: una opción de seguridad adicional puede establecerse a nivel de cada método de proyecto 4D. Para obtener más información, consulte el párrafo "Opción Disponible vía SQL" en la sección Implementaciones del motor SQL de 4D

 
PROPIEDADES 

Producto: 4D
Tema: Utilizar SQL en 4D

 
HISTORIA 

 
ARTICLE USAGE

Manual de SQL ( 4D v16)