Saltar al contenido

Restringir el acceso de inicio de sesión de SQL Server a una sola base de datos

Solución:

Creo que esto es lo que nos gusta mucho hacer.

--Step 1: (create a new user)
create LOGIN hello WITH PASSWORD='foo', CHECK_POLICY = OFF;


-- Step 2:(deny view to any database)
USE master;
GO
DENY VIEW ANY DATABASE TO hello; 


 -- step 3 (then authorized the user for that specific database , you have to use the  master by doing use master as below)
USE master;
GO
ALTER AUTHORIZATION ON DATABASE::yourDB TO hello;
GO

Si ya creó un usuario y lo asignó a esa base de datos antes de hacer

USE [yourDB] 
CREATE USER hello FOR LOGIN hello WITH DEFAULT_SCHEMA=[dbo] 
GO

luego bórrelo amablemente haciendo lo siguiente y siga los pasos

   USE yourDB;
   GO
   DROP USER newlogin;
   GO

Para obtener más información, siga los enlaces:

Ocultar bases de datos para un inicio de sesión en Microsoft Sql Server 2008R2 y superior

  1. Conéctese a su instancia de servidor SQL usando Management Studio
  2. Vaya a Seguridad -> Inicios de sesión -> (CLIC DERECHO) Nuevo inicio de sesión
  3. completar los datos del usuario
  4. En Asignación de usuarios, seleccione las bases de datos a las que desea que el usuario pueda acceder y configurar

ACTUALIZAR:

También querrás ir a Security -> Server Roles, y para public comprobar los permisos para TSQL Default TCP/TSQL Default VIA/TSQL Local Machine/TSQL Named Pipesy quitar el connect permiso

Para cualquier otra persona que se pregunte cómo hacer esto, tengo la siguiente solución para SQL Server 2008 R2 y versiones posteriores:

USE master
go
DENY VIEW ANY DATABASE TO [user]
go

Esto abordará exactamente el requisito descrito anteriormente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *