Conexión con SQL Server -módulo S-

Requisitos de configuración del servidor SQL Server

Exportar base de datos Ms-JET a base de datos SQL Server

Conectarse a una base de datos

Cómo conectarse en red remota en vez de en red local

 

Requisitos de configuración del servidor SQL Server

Para que la aplicación pueda conectarse a una base de datos ubicada en un servidor SQL Server el servidor ha de cumplir unos requisitos mínimos:

??La versión ha de ser SQL Server 2005 o posterior.

??Los protocolos de red adecuados han de estar habilitados si nuestro servidor se encuentra hospedado en una máquina remota (Canalizaciones con nombre y TCP/IP).

??Los inicios de sesión con los que la aplicación se conectará al servidor han de estar disponibles.

SQL Server 2005 admite dos posibilidades de validación para conectarnos al servidor:

??Bien mediante un usuario Windows, que si la red pertenece a un Dominio (no a un grupo de trabajo), se puede importar como usuario válido (este sistema es el más seguro).

??Bien mediante un usuario SQL Server.

Estas formas de autenticación del servidor se configura en la ventana de propiedades del servidor, en la pestaña de Seguridad. Se puede seleccionar la autenticación sólo mediante usuario Windows o bien tanto con usuario Windows como con usuario SQL Server.

Para que un usuario de la aplicación pueda realizar las operaciones de crear nueva base de datos, copiar, compactar, chequear y modificar el modo exclusivo o de edición de la base de datos (si ésta está en el estado de read-only), el inicio de sesión con el que se conecte ha de poder asumir la función de servidor dbcreator como mínimo.

Nota: Cuando se crea una nueva base con la aplicación el directorio de defecto en donde se crea es el directorio donde se encuentra la base de datos model a no ser que se especifique lo contrario en el editor Directorio de datos en la subpestaña Conexión de la pestaña  Servidores de la ventana Opciones.

Crear conexiones desde la aplicación

Para que la aplicación pueda conectarse a SQL Server, la licencia de la aplicación debe tener el módulo 'S' o bien tener una licencia como mínimo de 10 usuarios simultáneos. La configuración la llevaremos a cabo a través de la pestaña Servidores de la ventana Opciones.

Para crear una cadena de conexión tendremos que situarnos en la pestaña anteriormente indicada y en la subpestaña Conexión y ejecutar los siguientes pasos:

  1. Seleccionar en el combo rotulado Plantilla el formato 'OLEDB para SQL Server para 2005'. Como Proveedor tendremos 'SQLNCLI'. Si este proveedor nos da problemas tenemos la opción de utilizar el proveedor 'SQLOLEDB'.
  2. En el campo Servidor tendremos que especificar la ubicación y en su caso el nombre de la instancia a la que nos queramos conectar:

     

    ??En el caso de que la instancia no tenga nombre, sólo habrá que explicitar el nombre de la máquina en la que se encuentra <nombre_máquina>.

    ??En el caso de que la instancia sí tenga nombre, además del nombre de la máquina habrá que especificar el nombre de la instancia <nombre_máquina>/<nombre_instancia>

    ??Existe la posibilidad de en vez de utilizar un nombre de máquina y un nombre de instancia utilizar la dirección IP de la máquina y el número de puerto por el que escucha la instancia <dirección_IP>,<número_puerto>, por ejemplo 192.168.200.82,1433

    ??Por defecto la instancia que se instala mediante SQL Server Express 2005 tiene nombre y es 'SQLEXPRESS'. Si la máquina servidora es nuestra propia máquina, podemos sustituir el <nombre_maquina> por el carácter '.'. En este caso, si nos conectamos a la instancia por defecto de SQL Server Express 2005 instalada en nuestra máquina, deberíamos introducir como Servidor la expresión: '.\SQLEXPRESS'

  3. Por último tendremos que dar los datos de identificación con los que entraremos en el servidor. Existen dos posibilidades:

     

    ??Utilizar el sistema de autenticación SQL Server. Para ello teclearemos en nombre del usuario y su clave en los editores Usuario y Clave. Si no especificamos usuario o la clave no corresponde al usuario propuesto la aplicación mostrará un diálogo que nos permite identificarnos puntualmente para conectarnos en esa sesión de trabajo.

    ??Utilizar el sistema de autenticación Windows (sólo si la instancia a la que nos vamos a conectar lo admite, es decir estamos en la máquina local o en un dominio). En este caso dejaremos la cadena "Integrated Security=SSPI" que viene por defecto en la plantilla en el campo Otros datos de la cadena de conexión.

    En caso de conectarnos desde otro equipo en una red local QUE NO SEA UN DOMINIO (por ejemplo, trabajo en grupo), o desde un servidor externo a la red, quitaremos la cadena "Integrated Security=SSPI" dejando el resto de datos de la plantilla por defecto.

Ejemplo:

Imaginemos que tenemos una base de datos localizada en un servidor sin nombre de instancia que se encuentra ubicado en una máquina con nombre Servidor. Pongamos por caso que nuestro servidor admite los dos sistemas de autenticación, Windows y SQL Server.

Si quisiéramos conectarnos a esta base de datos utilizando el sistema de autenticación Windows los datos que tendríamos que introducir serían:

· Proveedor: SQLNCLI

· Servidor: Servidor

· Otros datos de la cadena de conexión: Integrated Security=SSPI; OLE DB Services=-2;

Si por el contrario deseásemos conectarnos haciendo uso de un inicio de sesión SQL Server cuyo usuario tuviese nombre de usuario y contraseña, los datos serían los siguientes:

· Proveedor: SQLNCLI

· Servidor: 192.168.200.82,1433

· Usuario: sa

· Clave: ingrid-1

· Otros datos de la cadena de conexión: OLE DB Services=-2;

Exportar base de datos Ms-JET a base de datos SQL Server

Para exportar una base de datos de motor Ms-JET  a una base de datos SQL Server podemos proceder de diferentes maneras dependiendo de las herramientas que utilicemos, pero los pasos a seguir serán diferentes sólo dependiendo de si la exportación la llevamos a cabo desde la aplicación o desde otras herramientas ajenas a ella.

Exportación desde la aplicación

La forma más sencilla de exportar una base de datos a SQL Server es realizarlo desde la aplicación:

  1. Abrir la base de datos que deseamos exportar.
  2. Copiar la base de datos utilizando una conexión específica de SQL Server. Para ello tendremos que haber definido una conexión de este tipo y tenerla activa.

Exportación desde herramientas ajenas a la aplicación

Podemos exportar una base de datos desde el asistente para convertir a SQL Server que ofrece Access o, en este caso sería importar, desde el asistente para la importación/exportación que ofrece la instalación de SQL Server (no Express) o desde cualquier otra herramienta. En todos estos casos los pasos a seguir serían los mismos:

  1. Realizar la operación de importación / exportación con la herramienta seleccionada. Si la herramienta elegida nos permite realizar el siguiente paso junto a este, mejor.
  2. Abrir y chequear la base de datos SQL Server desde la aplicación.

Conectarse a una base de datos

Una vez que ya tengamos definidas nuestras conexiones ya podremos utilizarlas para conectarnos a una base de datos y trabajar desde la aplicación contra ella. Para ello sólo tendremos que abrir un archivo seleccionándolo desde el diálogo que nos ofrece Abre base.

La aplicación utilizará la extensión del archivo seleccionado para obtener la cadena de conexión a utilizar. Si la cadena de conexión contiene parámetros intentará resolverlos y si no puede pedirá la información que le haga falta al usuario. Si el proceso culmina satisfactoriamente tendremos acceso a la base de datos solicitada.

Recomendaciones:

Debería haber al menos un usuario de la aplicación que pudiese conectarse a una base de datos a partir de un inicio de sesión que poseyese la función de dbcreator, ya que esta función permite a sus miembros ejecutar sentencias del tipo ALTER DATABASE que son necesarias para modificar el modo exclusivo o poder editar la base de datos en el caso de que esta esté en el estado read only. Hay que tener en cuenta que existen operaciones, tales como chequear, copiar o compactar, que necesitan estar en modo exclusivo para poder realizarse.

Para poder copiar, compactar o crear nuevas base de datos con ésta función sería suficiente, ya que también permite ejecutar sentencias del tipo CREATE DATABASE.

Cómo conectarse en red remota en vez de en red local

La configuración para conectarse a un equipo servidor con SQL Server instalado desde un cliente que también tiene la aplicación instalada, a través por ejemplo de una ADSL, no se diferencia en casi nada de la conexión en una red local. Desde el lado del cliente, simplemente hay que conectarse a la IP y dirección de puerto que está escuchando el servidor de SQL Server.

Desde el lado del servidor sólo hay que abrir en el router de entrada el puerto que escucha el servidor, y hacer una traducción NAT (o una simple redirección del puerto interno al externo, si no tenemos más de un servidor) a la dirección IP interna (de red local) del servidor, y el puerto del servidor.

Ejemplo particular:

En un router sencillo como el X7768r, basta con acceder a la opción Configuration > Security > Security interfaces > Advanced NAT configuration, y mapear añadiendo dos opciones al mapa NAT abriendo el puerto 1434 para transporte TCP y UDP.

En ambas definiciones, la dirección IP local es la del equipo servidor que tiene SQL Server en el red local, no hay que especificar IP global (es 0.0.0.0), y el puerto interno es el mismo que el externo (1434).