jueves, 27 de febrero de 2014

Poner una base de datos SQL server con usuario único o múltiple

Normalmente las Bases de Datos de SQL Server son de acceso múltiple, es decir que puede acceder a ellas muchos usuarios. Pero puede darse el caso de que queramos que  sólo acceda a ella un usuario o también que nos envíen una base de datos para restaurar y al hacerlo esté en usuario único (single user) y queramos ponerla para múltiples usuarios.

Si el icono de la base de datos aparece con un dibujo de un usuario al lado (como en la figura de abajo) es porque está en usuario único, además lo indicará con un paréntesis donde pone Usuario único.

Base de datos en modo single user


Si intentamos abrirla sólo podremos hacerlo en una instancia, si intentamos abrir una segunda instancia u otro usuario al mismo tiempo, saldrá un mensaje de error.

Database ‘nombre_BBDD’ is already open and can only have one user a time

Con el mensaje “Database ‘nombre_BBDD’ is already open and can only have one user a time’ – La base de datos ya está abierta y sólo puede ser utilizada por un usuario a la vez.
Si abrimos el monitor de actividad (en azul en la primera figura) haciendo doble click sobre él podemos ver si ya existe una instancia de la base de datos abierta.

monitor de actividad SQL SERVER

Si la base de datos está disponible para un solo usuario y necesitamos ponerla en usuario múltiple y no nos deja por que ya tiene abierta una instancia, tendremos que abrir el monitor de actividad y posicionarnos sobre la línea de la instancia de la bases de datos y pulsar el botón derecho del ratón y eliminar proceso.

eliminar un proceso de base de datos abierto

Hecho esto para ponerla en usuarios múltiples hay que colocarse cobre el icono de la base de datos y con botón derecho del ratón, elegimos propiedades

propiedades de la base de datos

Donde nos saldrá un cuadro de diálogo de varias pestañas a la izquierda en la que elegiremos la pestaña de opciones


restringir acceso a una base de datos SLQ SERVER

Y después buscamos a la derecha la opción restringir acceso y desplegando la flecha de la derecha podremos elegir múltiple o single entre otras opciones.

Elegida la opción pulsamos aceptar y ya tenemos la base de datos en el modo elegido.
Si queremos hacerlo por comandos podemos hacerlo ejecutando en el analizador de consultas las siguientes instrucciones:

ALTER DATABASE Nombre_Base_Datos
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

ALTER DATABASE Nombre_Base_Datos
SET MULTI_USER;
GO

WITH ROLLBACK IMMEDIATE hará que todas las transacciones que estén sin terminar se reviertan y que el resto de las conexiones a la base de datos Nombre_Base_Datos se desconecten inmediatamente.


Poner la base de datos Offline/Online

Otra posibilidad es que deseemos poner offline u online la base de datos. Para ponerla offline podemos ejecutar el procedimiento almacenado del sistema:

exec sp_dboption 'dbNombreBasedeDatos', 'offline', 'true'

En este caso particular nuestra Base de Datos se llama dbGDI_PER_REAL  

exec sp_dboption 'dbGDI_PER_REAL', 'offline', 'true'

Esto dejará fuera de línea la base de datos y en el explorador de objetos de SQL Server se mostrará con una marca roja.


Base de datos de SQL Server offline


Con la siguiente instrucción revertimos el proceso y ponemos online de nuevo la Base de datos 

exec sp_dboption 'dbGDI_PER_REAL', 'offline', 'false'

con lo que se mostrará de nuevo en el explorador de objetos con su icono habitual.


Base de datos SQL Server online


Más información en: Ayuda de microsoft.


No hay comentarios:

Publicar un comentario