Skip to main content

Guía rápida de instalación en clúster de SQL Server 2008R2

Autores: Enrique Catalá, Rubén Garrigos y Enrique Puig

Contenidos


Introducción

Al igual que ocurre en el proceso de instalación de SQL Server 2008 R2 sin clusterizar, Microsoft ha conseguido un instalador claro y sencillo para llevar a cabo la instalación de SQL Server 2008 R2. Dicho proceso de instalación es esencialmente similar al que existe en SQL Server 2008 con alguna pequeña modificación en el orden de algunos pasos, pero esencialmente siguiendo su misma filosofía.

Esta guía de instalación está centrada en el proceso de instalación en clúster de nuevas instancias del motor relacional de SQL Server 2008 R2 de una forma gráfica y rápida.

Si se desea una guía mucho más detallada y completa del proceso de instalación, se recomienda seguir el artículo oficial de los libros en pantalla de SQL Server 2008 R2 que se puede encontrar aquí: http://msdn.microsoft.com/es-es/library/ms179410.aspx

Para la realización de esta guía se ha contado con el siguiente software:

  • Windows Server 2008 R2 Enterprise Edition actualizado con Windows Update
  • SQL Server 2008 R2 Enterprise Edition RTM

Preparación del entorno

Para que SQL Server 2008 R2 pueda instalarse en clúster, el entorno sobre el que residirá dicha instancia debe estar ya preparado para ello. Esto quiere decir que debemos tener configurado un entorno Windows Server 2008 x64 o superior en clúster y que debemos disponer de la infraestructura necesaria previa para lograrlo.

Prerrequisitos

Como hemos comentado, debemos disponer de una infraestructura de Windows Server 2008 x64 o superior clusterizada. Pese a que dicha configuración previa se sale del ámbito de este artículo, mencionaremos la infraestructura sobre la que lo hemos desarrollado.

  • Windows Server 2008 R2 DataCenter edition como host para plataforma hyper-v

Para la realización de este artículo hemos creado un entorno virtualizado mediante hyper-v. En un entorno productivo no virtualizado, esto no sería necesario.

  • Windows Server 2003 Enterprise Edition x64 configurado como servidor iSCSI para almacenamiento

En un entorno productivo donde se disponga de una SAN sobre la que delegar la configuración en clúster, no sería necesario disponer de un Windows Server como servidor iSCSI de almacenamiento. Se vuelve a  mencionar que se trata de un entorno creado especialmente para el artículo.

  • Windows Server 2008 R2 Enterprise Edition como servidor de dominio Active Directory
  • Dos máquinas Windows Server 2008 R2 Enterprise Edition como nodos del clúster sobre el que se instalará SQL Server 2008 R2

En este artículo, se va a instalar SQL Server 2008 R2 sobre dos nodos de un cluster de Windows Server 2008 R2 virtualizado mediante Hyper-v.

NOTA: La infraestructura de Windows Server en clúster mencionada es un ejemplo cualquiera que no necesariamente debe tomarse como patrón de configuración a seguir. Se trata de una infraestructura de pruebas específica para la creación de este artículo.

Durante el proceso de instalación de SQL Server 2008 R2 en clúster, el instalador nos va a preguntar por cierta información. Se recomienda al lector que previamente a la instalación de la instancia en cluster de SQL Server 2008 R2 tenga previsto lo siguiente para cuando el instalador se lo solicite:

  • Tener pensado un nombre virtual del clúster de SQL Server 2008 R2
  • Tener pensado un nombre de la instancia del clúster de SQL Server 2008 R2 (en el caso de que se desee)
  • Segmento de red en el que SQL Server operará. Disponer de las tarjetas añadidas como recurso del clúster de Windows Server
  • Si es el caso, una IP fija para asignar a la instancia clúster de SQL Server (tener prevista una IP libre para cuando se solicite)
  • Recursos de disco necesarios para la instalación del clúster SQL Server (tener presentado al clúster de Windows Server, al menos un volumen libre para poder destinar a clusterizar SQL Server 2008 R2)

Configuraciones recomendadas

Los siguientes puntos hacen referencia a prerrequisitos estándar a tener en cuenta en la preparación de un entorno de SQL Server. No por ello deben obviarse y se recomienda al lector que los verifique previamente a la instalación de SQL Server 2008 R2 en clúster:

Alineamiento de particiones

Si el entorno de producción involucra un Windows Server 2008 o superior, y desde las herramientas del propio sistema operativo se han creado las particiones, este apartado no hace falta validarlo puesto que en forma predeterminada realiza un alineamiento de particiones de 1Mb:

Referencia: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Perf-tun-srv.docx(página 30, sección DISKPART)

Si por el contrario, el entorno de producción involucra un Windows Server 2003, o el subsistema de discos ha sido particionado bajo las herramientas administrativas de un Sistema Operativo previo, se recomienda realizar un alineamiento de las particiones donde se albergarán los ficheros .mdf y .ldf de las Bases de datos utilizando diskpart.

Nota: Este diagrama se corresponde con una unidad de almacenamiento en forma predeterminada de NTFS (4kb). El diagrama no se encuentra a escala (ver que los trozos 1 y 2 tienen el mismo tamaño a pesar de no serlo realmente)

Asumiendo un valor de 64kb por banda del disco, existen 8 sectores de 512B por cada clúster de 4Kb NTFS y existen 16 clústeres de 4Kb por cada banda de 64Kb.

Nótese que existen sectores ocultos (63 en forma predeterminada en el ejemplo desalineado y 64 en el ejemplo alineado)

En el ejemplo, la línea 3 se encuentra desalineada mientras que la 4 está alineada

Teniendo esto presente, se puede ver como cada lectura enésima, produce un salto en la banda en el caso de los sectores desalineados, debido a que el último clúster de 4Kb no ha cabido completamente en la misma y se encuentra en otra diferente. Esto produce que al realizar la lectura, se tengan que realizar dos accesos a disco.

Con el valor en forma predeterminada de 4Kb por clúster, cada 16 lecturas, se tiene que realizar una lectura extra.

Para conocer el estado del alineamiento de las particiones actualmente, podemos lanzar la siguiente consulta WMI desde powershell:

gwmi –query “SELECT Name,Size,StartingOffset from Win32_DiskPartition”

Siendo Name, la ubicación proporcionada por el subsistema de disco para dicha partición, Size el tamaño de la misma, y StartingOffset la posición de comienzo de la misma, dentro del disco.

Para más información sobre alineamiento de particiones: http://technet.microsoft.com/en-us/library/cc766465.aspxsección “alignment

Formateo de NTFS a bloques de 64kb

Los discos que alberguen los ficheros de log y datos  se han de formatear a 64kb por bloque para mejorar el rendimiento de SQL Server.

Con ello favorecemos que se almacenen en un mismo bloque, lo que se denominan “extensiones” (conjuntos de 8 páginas). De esta forma se mejorarán las lecturas en los casos en los que SQL Server decida realizar operaciones de lectura adelantada.

Referencia: http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/SAP_SQL2005_Best%20Practices.doc(página 67)

Log on as a service

Se recomienda definir un grupo de usuarios dentro del dominio que ejecute los servicios de SQL Server. Estos usuarios más adelante los veremos reflejados en el proceso de instalación (ver Figura 16).  Si el servicio va a estar dentro de un entorno clúster, para que no ocurra ningún problema al iniciar los servicios, se recomienda dar a dichos usuarios el permiso de “log on as a service”.

Para ello podemos entrar en “Administrative Tools” -> “Local Security Policy” y mediante botón derecho dentro de “Local Policies”->”User Rights Assignment”->”Log on as a service”, añadimos el grupo.

Lock pages in memory

Siempre es recomendable configurar “lock pages in memory” para SQL Server, sobre todo en entornos actuales con más de 8 Gb de RAM.

Referencia: http://technet.microsoft.com/en-us/library/ms190730.aspx

Instant File Initialization

Para poder sacarle ventaja a las capacidades de inicialización instantánea de ficheros, hemos de agregar el permiso SE_MANAGE_VOLUME_NAME a la cuenta del servicio que levante SQL Server. Los usuarios de administración locales de Windows poseen dicho permiso habilitado, pero dado que se presupone que un usuario con permisos mínimos del dominio levante los servicios (ver figura 16), hemos de agregarle dichos permisos.

Dicho permiso se concede cuando les añadimos la política de seguridad “Perform Volume Maintenance Task”.

Referencia: http://msdn.microsoft.com/en-us/library/ms175935.aspx

Instalación de SQL Server 2008 R2

Una vez verificado el punto anterior donde hablamos de pre-requisitos, podemos comenzar la instalación de SQL Server 2008 R2 en clúster.

Instalación opcional de requisitos previos

Instalar .NET 3.5 SP1

Es necesario disponer de .NET 3.5 sp1 antes de instalar SQL Server 2008 R2. Como paso previo a la instalación de SQL Server, se puede planificar. En cualquier caso, el propio proceso de instalación de SQL Server 2008 detecta si existe el runtime .NET 3.5 SP1 y si no es así nos avisará de ello y nos informará que pasos debemos seguir.

Recuerda que en Windows Server 2008 R2 debes instalarlo desde el apartado Features, tal y como se aprecia en la siguiente imagen.

Instalar Windows Installer 4.5

Es necesario disponer de la versión Windows installer 4.5 para poder realizar la instalación de SQL Server 2008 R2. Puesto que el propio DVD de instalación de SQL Server ya lo posee, también se puede instalar durante el proceso de instalación. Se trata del Hotfix KB942288.

Instalación de SQL Server 2008 R2 sobre Clúster de Windows Server 2008 R2

El proceso de instalación en clúster de SQL Server 2008 evolucionó en la versión 2008 con Windows Server 2008. Ahora, el proceso de instalación del clúster requiere realizarse sobre un nodo del clúster de Windows Server 2008 R2 previamente montado;  Esto quiere decir que lo que haremos es ni más ni menos que instalar un clúster de un solo nodo de SQL Server 2008 R2 y sobre él, ir añadiendo más nodos. Este tipo de configuración es muy útil puesto que permite que SQL Server 2008 R2 esté dando servicio mucho antes ya que mientras se encuentra en funcionamiento, podemos ir añadiendo(y quitando llegado el caso) nodos del mismo en caliente (y si, esta es una grandísima ventaja). Nada nos obliga por tanto a disponer de todos los nodos de nuestra infraestructura antes de empezar.

NOTA: Pese a que es posible trabajar con un solo nodo, se recomienda la configuración en clúster de al menos dos nodos antes de comenzar a dar servicio en un entorno productivo. De lo contrario no existirá tolerancia a fallos.

Instalación del primer nodo del Clúster de SQL Server 2008 R2

Una vez introducido el DVD de SQL Server 2008 R2 sobre el servidor, lo primero que hará será validar que se poseen los requerimientos de .NET 3.5 SP1 y Windows Installer 4.5. Una vez resueltos los mismos (si faltan) aparecerá la aplicación de instalación de SQL Server 2008 R2.

Llegados a este punto, dado que el artículo se centra exclusivamente en la instalación de una instancia SQL Server 2008 R2, iremos directamente al apartado “Installation”.

En cualquier caso, en la primera pantalla denominada “Planning”, podremos encontrar la documentación sobre instalación de SQL Server 2008 R2 así como la aplicación de chequeo de sistema para validar instalaciones futuras de SQL Server 2008 R2 o el SQL Server Upgrade Advisor que queda fuera del ámbito de este artículo y es la aplicación con la que podemos analizar migraciones de versiones inferiores hacia SQL Server 2008 R2.

1.       Clicar sobre la pestaña “Instalación” y posteriormente sobre “nueva instalación de SQL Server Failover cluster”.

2.       Una vez instalado, se comienza con las validaciones previas a la instalación de SQL Server

Como vemos, antes de empezar el instalador realiza unos chequeos de integridad del sistema para comprobar que está todo listo para la instalación. Si por ejemplo tuviéramos el sistema esperando para ser reiniciado por cualquier otra instalación previa anterior, no nos dejaría continuar.

3.       Una vez validados los prerrequisitos, nos pedirá la clave de producto y posteriormente se instalarán los ficheros necesarios para la instalación de SQL Server.

4.       Se procede a la validación del estado del clúster para su futura instalación, así como de la configuración del servidor y las necesidades del entorno necesarias para que la instalación llegue a buen puerto.

Como vemos en la imagen anterior, existen 4 advertencias en la instalación que nos avisan de posibles configuraciones que podrían afectar al funcionamiento de SQL Server. Las advertencias permiten continuar la instalación y hacen referencia a cosas que te recomienda revisar por simple seguridad hacia el nuevo entorno que se está configurando. Evidentemente, aquí variarán los mensajes que te puedan dar en tu instalación pero independientemente de lo que sea, revísalos siempre para que no se te escape nada. Algunos mensajes que te puede dar:

  • Advertencia sobre MSDTC. Si no vamos a utilizar este servicio, este aviso puede obviarse.
  • Aviso de rendimiento en la configuración de red (si tienes TEAMING activado). Te advierte de una “posible” configuración de prioridades en las tarjetas de red, que podría ocasionar una pérdida de rendimiento de red.
  • Advertencia de que existen Warnings en la configuración de Windows Clúster en la que descansará SQL Server. Esto hemos verificado que ocurre debido a que el clúster Hyper-v donde reside tiene un problema con una de las tarjetas de red, nada serio por tratarse de un entorno de desarrollo. En un entorno producción habría que revisarlo en detalle.
  • El tercer punto hace referencia a un aviso para que recordemos abrir los puertos del firewall necesarios para poder conectar externamente al servidor de SQL Server.

Entre otras cosas, conviene recordar que a menos que sea modificado (cosa que es recomendable como buena práctica) el puerto por defecto que escucha SQL Server 2008 R2 es el 1433.  Ver sección apéndice para más información sobre seguridad.

5.       Una vez revisada la configuración, si pulsamos en siguiente, continuaremos con el proceso de instalación, donde seleccionaremos por ejemplo, únicamente el motor relacional de SQL Server 2008 R2 y las herramientas cliente (en este ejemplo en concreto, hay más servicios clusterizables)

NOTA: Puesto que este artículo está centrado en una instalación de motor relacional de SQL Server 2008 R2, en la imagen anterior se pueden observar qué características y servicios se recomienda instalar.

1.      Database Engine Services

Se trata del motor relacional de SQL Server, justo lo que queremos instalar.

La instalación de SQL Server Replicación se recomienda instalar solo si la instancia va a formar parte de alguna manera en algún rol de replicación.  Lo mismo ocurre con Full-Text Search.

Como Buena práctica, siempre es recomendableen cualquier instalación de cualquier software, solo instalar aquellas características de las cuales se va a hacer uso. Se deja de cualquier forma al lector que tome la decisión de instalar o no dichas características.

En nuestro ejemplo, las hemos marcado porque de antemano sabemos que esta instancia en un futuro hará uso de ambos servicios.

2.      Business Intelligence Development Studio

Tambien conocido como BIDS, se trata de una versión de Visual Studio con soporte para la creación de proyectos de inteligencia de negocio como Integration Services, Reporting Services o Analysis Services.

Puesto que como veremos más adelante, vamos a querer instalar el servicio de SQL Server Integragion Services, es recomendable marcar esta casilla.

3.      Client Tools Connectivity

Librerias de acceso SQLNCLI para comunicación entre clientes y servidores SQL Server

4.      Integration Services

Pese a que este servicio no es puramente relacional, siempre es útil instalarlo junto al motor relacional porque es habitual realizar procesos de carga y transformación de datos utilizando SQL Server Integration Services.

Además, de entrada este servicio no será clusterizado por lo que deberemos instalarlo manualmente y a posteriori en cada uno de los nodos.

5.      Management Tools – Basic

En este caso, es buena idea tener instaladas las herramientas de administración de SQL Server para emergencias (por si solo pudiéramos logear localmente por cualquier motivo). Se instalarán: SQL Server Management Studio, SQLCMD y el proveedor powershell para SQL Server (sqlps.exe)

Esto tendríamos que instalarlo también en cada uno de los nodos que formen parte de nuestro futuro clustter de SQL

6.      Management Tools – Complete

Añade soporte extra para SQL Server Management Studio con conexion a Reporting Services, Analysis Services e Integration Services

Añade las herramientas SQL Server Profiler, Database Tuning Advisors.

Al igual que el punto 5, se recomienda instalar para emergencias, no porque vayamos a utilizarlo como software de acceso y/o análisis habitual. Además, convendrá instalarlo también en cada uno de los nodos de nuestro cluster SQL.

Una vez seleccionados los componentes que deseemos, se realizará un nuevo chequeo enfocado en este caso a detectar posibles incompatibilidades o inconsistencias a la hora de instalar los componentes y características que se han seleccionado especialmente (Ver figura 13).

6.       En el siguiente punto, se nos solicitará el nombre virtual del clúster de SQL Server y el nombre de la instancia:

  • En “SQL Server Network Name” asignaremos el nombre de red virtual con el que nos gustaría designar a la instancia de SQL Server.
  • En “Named Instance” asignaremos el nombre de instancia deseado( esto es opcional y por tanto podría dejarse por defecto)

El dar un nombre a la instancia o no, depende de criterio personal. Solo hay que tener en cuenta que únicamente se permite una instancia con nombre por defecto y que no podremos elegir MSSQLSERVER. Por tanto, si ya tenemos una instancia con nombre por defecto, la única opción que podríamos escoger es la de Named Instance y asignar un nombre.

Por lo tanto, estamos configurando que para acceder a esta instancia, nuestras aplicaciones conecten al nombre de instancia “SQLCLU\SQL2K8R2”.

Puesto que es posible instalar más de una única instancia de SQL Server en una misma máquina, si existieran otras instancias en la máquina, en el DataGrid que aparece en el centro de la imagen anterior, lo podríamos detectar para evitar dar un nombre que ya estuviera asignado.

7.       En el siguiente punto se nos solicitará que especifiquemos el nombre para el cluster resource group. Dicho nombre es el que aparecerá en la herramienta de “Failover Cluster Manager” y es el que designará esta aplicación en nuestra configuración en cluster.

8.       Lo siguiente que se nos va a solicitar es que designemos qué discos vamos a querer presentar a SQL Server 2008 R2. Dichos recursos de disco deben existir previamente presentados en nuestro clúster de Windows Server y quedan fuera del ámbito de este artículo.

NOTA: En este ejemplo, teníamos presentado únicamente un recurso de disco y por eso solo nos deja escoger uno.

9.       En el siguiente paso, se nos va a solicitar que marquemos qué segmento de red deseamos que SQL Server escuche (en nuestro caso solo 1, pero podríamos configurar más).

Puesto que no estamos en el caso de utilizar DHCP para asignar una IP virtual del clúster, vamos a asignar una IP fija al mismo indicando que en este caso concreto sea 10.1.1.80/255.255.255.0

Tanto si se utilizará o no DHCP como la propia IP y segmento de red dependerá obviamente de la topología de red donde se encontrará SQL Server finalmente.

10.   En este apartado, especificaremos que cuentas deseamos que sean utilizadas para arrancar cada servicio.

Como buena práctica se recomienda utilizar un usuario de dominio creado explícita y exclusivamente para el servicio concreto del que estemos hablando. Además, se recomienda que dicho usuario tenga los mínimos privilegios y permisos posibles.

Una vez asignados los usuarios que levantarán los servicios de SQL Server 2008 R2, procederemos a configurar el collation de la instancia (Ver figura 17).

Es de vital importancia que se tenga claro el collation a utilizar, puesto que un error en su elecciónrequerirá un trabajo duro para cambiarlo (en ocasiones incluso sale a cuentas reinstalar de nuevo toda la instancia de SQL Server).

Por ejemplo, si la instancia que estamos instalando va a albergar bases de datos que ya existen en otras instancias actualmente, es altamente recomendable que asignemos el mismo collation que hay en la instancia de SQL Server de donde provienen. Esto nos evitará futuros problemas de conflicto de collation y ordenaciones fruto de una mala elección.

NOTA: Para conocer el collation de una instancia actual lanzar la siguiente consulta:

select SERVERPROPERTY(N'Collation')

Si por el contrario la instancia es nueva y albergará nuevas bases de datos que estamos en potestad de asignar un collation en este momento, recomendamos utilizar collation de Windows. Los collation de SQL Server se siguen manteniendo por compatibilidad hacia atrás y si no es requerido se recomienda utilizar los de Windows.

11.   Seleccionamos las rutas que queremos por defecto:

12.   Configuraremos FILESTREAM si es necesario:

Desde la versión de SQL Server 2008 podemos disfrutar de un nuevo tipo de datos denominado Filestream, que obviamente también viene con SQL Server 2008 R2. Si vamos a hacer uso del mismo, en esta pantalla podremos configurar sus tres estados posibles:

a. Habilitado para T-SQL

b. Habilitado para acceso a través de sistema de ficheros localmente

c. Habilitado para acceso a través de sistema de ficheros local y remotamente

Como siempre, se trata de una característica que podremos habilitar a posteriori y se recomienda no habilitarla si sabemos de antemano que no la vamos a utilizar.

Una vez llegados a este punto, hemos configurado todo lo que teníamos que configurar para la instalación de SQL Server y procederemos a las pantallas de validación final y confirmación de elecciones.

13.   Por último ya solo falta que comience el proceso de instalación:

Una vez finalizada la instalación de SQL Server en el clúster, dispondremos de un clúster de SQL Server 2008 en un solo nodo.

Si abrimos la herramienta “Failover Cluster Manager”de Windows Server 2008 R2, podremos ver el estado actual de configuración de nuestro clúster.

Comprobamos que podemos acceder abriendo la consola de administración “SQL server Management Studio” y comprobando la versión de SQL Server (por ejemplo):

Como vemos, ya estaríamos en disposición de utilizar la instancia de SQL Server 2008 R2, aunque como hemos comentado anteriormente, es recomendable no hacerlo hasta tener al menos dos nodos en el clúster para poder tener tolerancia  a fallos. En el siguiente punto, añadiremos el segundo nodo a nuestro clúster de SQL Server 2008 R2.

Adición de un nuevo nodo al clúster de SQL Server 2008

Llegados a este punto, ya tenemos configurado y funcionando el clúster de SQL Server 2008 R2, con la única salvedad de que es un clúster de un solo nodo (pero eso sí, funcional). El siguiente paso evidentemente es recomendable porque cuando montamos un clúster, no lo hacemos en principio para tener un único nodo…en cualquier caso, el lector notará que se puede trabajar con SQL Server en este momento y posteriormente cuando se pueda, configurar este paso tantas veces como nodos queramos tener (con las limitaciones obviamente de la edición de Windows en la que estemos).

Para ello, introduciremos el DVD de SQL server en el servidor que vamos a añadir al clúster de SQL 2008

NOTA: No insertar el DVD de instalación en el nodo ACTIVO

1.       En este caso, lo que haremos será clicar sobre la opción de añadir un nuevo nodo a un clúster existente.

De nuevo se realizan procesos de validación en este nodo, para detector inconsistencias. En este caso de nuevo aparecen advertencias. Pese a que puedan ser las mismas que antes, debemos comprobar que todo es correcto

2.       Una vez detectado el clúster donde hemos de ingresar este nodo, lo que haremos será configurar las cuentas de servicio reintroduciendo los passwords de nuevo en el caso de nuestros inicios de sesión de base de datos y SQL Server Agent.

El resto del proceso son formularios donde nuestra única aportación será la de clicar en “siguiente” tras validar la información

En este paso, se comenzará la instalación del nuevo nodo de SQL Server 2008 R2 en clúster.

Cabe destacar como se ve en la siguiente imagen, que la instancia de SQL Server en clúster previamente instalada y sobre la que estamos añadiendo este nodo, se encuentra dando servicio como se puede apreciar en la imagen.

3.       Por último ya solo queda probar un failover si queremos comprobar que todo va a ir como toca y listo, a trabajar.

Para ello, como siempre, basta con abrir la herramienta “Failover Cluster Manager” y sobre la aplicación SQL2K8R2, clicar botón derecho y marcar “Mover al nodo X” tal y como se puede ver en la siguiente imagen:

Y comprobamos que efectivamente y como debe ser, ahora el clúster se encuentra activo sobre el nodo 1 de nuestro clúster de dos nodos de SQL Server 2008 R2.

Llegados a este punto, podemos asegurar que tenemos un clúster de SQL Server 2008 R2 de dos nodos con tolerancia a fallos. Como vemos, una gran ventaja poder añadir y quitar nodos del recurso del clúster de SQL Server en caliente (sin dejar de dar servicio).

APÉNDICE

Configuración de seguridad básica

Permisos de sysadmin

De forma predeterminada, los miembros de BUILTIN\Administrators poseen derechos de administración. Se recomienda evitar que ninguno de los inicios de sesión sea incluido en el grupo de usuarios BUILTIN\Administrators

Permisos de la cuenta de servicio de SQL Server

Se recomienda crear usuarios del dominio con los mínimos privilegios posibles para levantar los servicios de SQL Server, SQL Server Agent, Reporting Services y Analysis Services

Sql Server Auditing

Asegurarse que existe la auditoria de accesos fallidos. Con ella, el sistema captura tantos intentos infructuosos a SQL Server de usuarios Windows y SQL. De esta forma se pueden detectar ataques por fuerza bruta

Puerto de escucha de SQL Server

Se recomienda cambiar el puerto de escucha de SQL Server 2008 R2 para que no sea utilizado el puerto en forma predeterminada (1433).

Ofuscar el servicio SQL Server a conexiones externas

Suele ser común pensar en detener el servicio SQL Browser para dificultar la labor de detección de instancias de SQL Server en la red. Ciertamente, este servicio si se para, producirá que no podamos realizar consultas a ningún sitio para determinar el puerto y nombre de instancia al que conectarnos…

El problema de detener el servicio de SQL Browser es que dicho servicio no solo es utilizado para eso, sino que el detenerlo puede dar lugar a verdaderos quebraderos de cabeza en según qué escenarios (clustering, conexión DAC con nombre de instancia, etc…)

Lo cierto es que no es necesario detener el servicio para “ofuscar” la conexión hacia SQL Server, puesto que a nivel de protocolos de red, es posible marcar la instancia como “oculta”, de forma que solo conociendo su nombre de instancia y puerto, seamos capaces de conectarnos a ella.

Según se puede apreciar en la imagen, al hacer clic sobre “Protocols for xxxx”, disponemos de la opción de ocultar la instancia (que en forma predeterminada está a No).

Con esto no queremos dar la sensación al lector de que el servicio se encuentra a salvo de detectores de SQL Server, pero al menos se lo ponemos más difícil.

Autores

Enrique Catala Bañuls es mentor en el área relacional de la empresa Solid Quality Mentors. Es MCT, MCITP, MCTS y ha sido nombrado MAP 2010 (Microsoft Active Professional). Centrado profesionalmente en bases de datos SQL Server, durante los últimos 5 años tiene su foco principal de operación en solución de problemas de rendimiento, escalabilidad, migraciones y alta disponibilidad. Además de impartir cursos oficiales de Microsoft, ha participado como speaker en eventos de lanzamiento de Microsoft España (Microsoft SQL Server 2008), en las 24h de conferencias de SQL PASS, miembro del nuevo SQL PASS Spain, en charlas del grupo de usuarios de Microsoft GuseNET y es ponente habitual de sesiones dentro del SolidQ Summit Madrid.

Rubén Garrigós es un experto en troubleshooting, tuning y diseño de soluciones empresariales de alta disponibilidad basadas en SQL Server. Durante los últimos cinco años ha trabajado con tecnologías de acceso a datos de Microsoft en compañías líderes de todo el mundo. Actualmente es un arquitecto de la plataforma de datos de Microsoft basada en SQL Server y aplicaciones .NET en Solid Quality Mentors. Está certificado por Microsoft como desarrollador de soluciones en .NET (MSCD) así como administrador y desarrollador de base de datos (MCITP DBA & DBD). En estos años ha impartido múltiples cursos oficiales de Microsoft así como cursos especializados en SQL Server. Además ha presentado sesiones en eventos oficiales de Microsoft y ante grupos de usuarios de tecnologías Microsoft.

Enrique Puig Nouselles es miembro de Solid Quality Mentors en el departamento de Motor Relacional. MCITP de SQL Server, realiza labores de Data Platform Engineer. Ha participado como speaker en eventos de lanzamiento de Microsoft España (Microsoft SQL Server 2008R2) y en la serie de webcasts de novedades de SQL Server 2008 R2. También ha impartido diversas charlas con en el grupo de usuarios de Microsoft GuseNET y ha colaborado con el magazine dotNETMania.