You are on page 1of 9

CÓMO CREAR UNA CUENTA DE INICIO DE SESIÓN EN SQL SERVER PARA UNA CUENTA DE

MÁQUINA
Hoy queremos traer un escenario relacionado con la administración de cuentas de inicio de sesión que, aunque
en apariencia es sencillo, puede generar algo de confusión y hacernos perder más tiempo del deseado.
NOTA: Queda fuera de este artículo las consideraciones generales relativas a las mejores prácticas de
seguridad para SQL Server 2005, 2008 y 2008R2. Tan sólo dejar claro que, como norma general y dentro de lo
posible, en lo que se refiere a la creación de cuentas de inicio se recomienda el uso de la autentificación
integrada con Windows y que, dentro de esta opción, se empleen grupos usuarios de dominio de tipo local
(domain local group / local groups) en lugar de cuentas individuales (domain account / local account). Para más
detalles sobre estos temas recomendamos consultar los enlaces de referencia incluidos al final del artículo.
Escenario inicial
En determinadas circunstancias puede existir la necesidad de dar permisos de acceso a una cuenta de
máquina (computer account) en una o más base de datos dentro de una instancia de SQL Server. Para ello es
necesario crear una cuenta de inicio de sesión para la cuenta de máquina y luego crear las cuentas de usuario
en cada una de las bases de datos necesarias con los permisos adecuados. También es verdad que lo habitual
es dar acceso una cuenta de usuario de dominio o a un grupo de usuarios local de dominio, o incluso crear una
cuenta propia de SQL Server.
Un caso donde es necesario crear inicio de sesión para cuentas de máquina puede ser que un producto
“cerrado” (como SCOM 2007 por ejemplo) requiera este tipo de configuración, o que un desarrollo a medida
(como un desarrollo en ASP.NET por ejemplo) se ejecute bajo el contexto de la cuenta de sistema “NT
AUTHORITY\System” de forma local o “NT AUTHORITY\NETWORK SERVICE” si se está accediendo de forma
remota.

Imagen 1: Es posible ver cuentas de inicio de sesión de máquina en el explorador de objetos de SQL
Server. Estas cuentas se identifican fácilmente porque con un símbolo de dólar “$” al final del nombre.

Normalmente sólo es necesario preocuparse de la creación de inicios de sesión para este tipo de cuentas
cuando se está instalando un desarrollo a medida, ya que lo habitual es que la propia instalación de un producto
cerrado se encargue de esta tarea. No obstante puede darse el caso en el que sea necesario mover una cuenta
de máquina a una nueva instancia o crear una nueva cuenta en la misma, como por ejemplo migraciones o
actualizaciones a versiones más recientes de la base de datos. Sea cual sea el motivo, si para el proceso se
intenta utilizar la interfaz gráfica de SQL Server Management Studio, se puede comprobar que del todo
imposible crear un inicio de sesión para una cuenta de máquina, ya que la propia ventana de selección de
cuentas no permite incluirlas o enumerarlas.
Imagen 2: La interfaz gráfica de SSMS no permite elegir el tipo de objeto (object type) máquina ya que
no aparece tan siquiera listado.

En cambio, en otros servicios, como la administración de cuentas de usuario del sistema operativo, es posible
ver e incluir cuentas de máquina.
Imagen 3: La consola de administración de usuarios sí permite elegir el tipo de objeto (object type)
máquina.

Si de todas formas se conoce y se intenta escribir el nombre completo de la cuenta de máquina, al chequearla o
se intenta directamente aceptar en el cuadro de diálogo, el sistema mostrará un error indicando que no ha
podido localizar el nombre especificado dentro de los objetos de tipo usuario, grupo o cuentas predefinidas.
Imagen 4: Error al intentar introducir manualmente la cuenta de máquina.
Resolución
SQL Server Management Studio no permite la selección de cuentas de máquina desde la interfaz gráfica por
características de diseño. La ventana de selección de cuentas del Directorio Activo pertenece a la librería
común del sistema operativo, al igual que el cuadro de diálogo para abrir o guardar un fichero o el de
seleccionar un directorio de destino. Cuando una aplicación desea utilizar esta ventana de selección de cuentas
debe indicarle de antemano el tipo de objetos del Directorio Activo que desea que aparezcan listados y en este
caso SSMS le solicita que muestre cuentas de usuario, grupos y cuentas predeterminadas. Esto no significa
que en futuras revisiones no se cambie este comportamiento.
En este caso la única forma posible de dar de alta una cuenta de máquina es a través de un comando Transact-
SQL. Como recordatorio, la cuenta de máquina corresponde al nombre de la máquina (que puede obtenerse
desde la línea de comandos con el comando HOSTNAME) precedido por el nombre del dominio donde se
encuentra y seguido del símbolo de dólar ($). Es prácticamente seguro que esta opción no funcione para
equipos fuera de dominio:

De todas formas, la solución recomendada es, siempre que lo permita el producto o el desarrollo que utilice la
cuenta, crear un grupo de usuarios local o local de dominio en la consola de administración de seguridad del
sistema operativo y añadir la cuenta de máquina para luego crear una cuenta de inicio de sesión en SQL Server
vinculada al grupo. También se recomienda como norma general evitar el uso de las cuentas predefinidas “NT
AUTHORITY\System” o “NT AUTHORITY\NETWORK SERVICE” en los desarrollos que accedan a recursos
tales como ficheros o bases de datos y que de forma alternativa se utilicen cuentas de usuario local o de
dominio específicas para cada propósito. De esta manera se logra identificar qué servicio o aplicación en
concreto está accediendo a cada recurso y se protege al sistema operativo de posibles fallos de seguridad.
PASOS PARA CONFIGURAR SQL SERVER 2008 PARA ADMITIR CONEXIONES
REMOTAS.
Las nuevas políticas de Seguridad de Microsoft incorporan restricciones a la hora de comenzar a usar SQL
Server 2008. Los Servicios que antes estaban habilitados por defecto, ahora no lo están, y es función del
Administrador ir habilitándolos según las necesidades de uso del mismo.
Una de las cuestiones más importantes es la de Admitir Conexiones Remotas en nuestro Servidor. A fin de
habilitarlas y asegurarnos que se pueden conectar desde otros ordenadores debemos seguir unos sencillos
pasos:

1. Abriremos SQL Server Management Studio, nos situamos encima de la instancia de nuestro Servidor y
pulsamos botón derecho, Propiedades, seleccionamos Conexiones, nos mostrara la siguiente pantalla:

Ahora marcamos el checkbox: “Permitir conexiones remotas con este servidor” u pulsamos aceptar.

2. Vamos al Menú de Inicio > Programas > Microsoft SQL Server 2008 > Herramientas de Configuración >
Administrador de Configuración de SQL Server, aparece la siguiente ventana:
Seleccionamos la Configuración de red de SQL Server y luego Protocolos de MSSQLSERVER. Como
podemos observar, por defecto solo tiene habilitado el protocolo de Memoria compartida, el resto estan
deshabilitados. Básicamente es el tipo de protocolo que se usa, cuando nos conectamos a SQL Server
desde el mismo Servidor.
Lo que debemos hacer es habilitar los protocolos: “Canalizaciones con nombre” y “TCP/IP”. Para lo
cual, pulsamos con el botón derecho del ratón encima de los mismos y pulsamos Habilitar. En las dos
ocasiones nos mostrara un mensaje informándonos, que para que la nueva configuración surta efecto
abra que reiniciar el Servicio de SQL Server.
Ahora nos quedará así:

3. Vamos al Menú de Inicio > Ejecutar y escribimos services.msc y le damos aceptar. De esta forma nos
abrirá la Consola de Administración de Servicios. Nos desplazamos hasta el Servicio con nombre “SQL
Server (MSSQLSERVER)”, nos situamos encima y pulsamos el botón derecho del ratón, seleccionando;
reiniciar. Con esto aplicaremos los cambios efectuados en el paso anterior.
4. SI estamos utilizando SQL Server con nombre de instancia y sin emplear un número concreto de puerto
TCP/IP, debemos habilitar el servicio SQL Server Browser, que se encuentra en la misma ventana de
Servicios con el nombre de “SQL Server Browser”. Nos situamos encima y con el botón derecho del
ratón pulsamos en Propiedades, o bien podemos hacer doble click, es lo mismo.

En el Tipo de Inicio, seleccionamos Automático y pulsamos Iniciar para que el Servicio arranque.
Aceptar para cerrar la pantalla.
Este Servicio comporta ciertos riesgos de seguridad que deben ser considerados, pues existen otras
alternativas a utilizar como configurar el Cliente de SQL Servidor con el Alias del Servidor, o utilizar la
conexión incorporando el puerto de TCP/IP a usar, por defecto en SQL Server es el 1433.
5. Y por último, en caso de tener habilitado el Firewall de Windows, cosa que deberíamos tener por
Seguridad, deberemos configurarlo para que los Servicios de SQL Server y SQL Browser puedan
comunicarse con el exterior. Vamos a Menú de Inicio , hacemos clic en Ejecutar , escribimos firewall.cpl
y pulsamos Aceptar. Nos muestra esta ventana:

Pulsamos en “Permitir un programa a través del Firewall de Windows” nos muestra:


Pulsamos en Agregar programa nos muestra la ventana:

Pulsamos en Examinar e introducimos la carpeta donde se encuentra el Servicio de SQL Server:


“C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn” en la misma
seleccionamos el programa: “sqlservr.exe” y pulsamos Aceptar. Repetimos la operación para añadir el
SQL Server Browser que se encuentra en la carpeta: “C:\Program Files\Microsoft SQL
Server\90\Shared”. Seleccionamos el programa: “sqlbrowser.exe” y pulsamos Aceptar. Veremos que
ambas excepciones nos aparecen en la pantalla de Configuración del Firewall.

Y con esto ya tenemos configurado nuestro Servidor SQL 2008 para permitir Conexiones desde
cualquier ordenador de nuestra red.

You might also like