2010-11-03 361 views

Respuesta

20
  1. conectarse a la instancia de SQL Server Management Studio
  2. Goto Seguridad -> Conexiones -> (clic derecho) Nuevo inicio de sesión
  3. rellene los datos de usuario
  4. Bajo Asignación de usuarios, seleccione las bases de datos que desea que el usuario sea capaz de acceder y configurar

ACTUALIZACIÓN: que también querrá Seguridad Goto -> funciones de servidor, y por "público" comprobar los permisos para canalizaciones con nombre TSQL defecto TCP/TSQL defecto VIA/TSQL Local Machine/TSQL y quitar el permiso de "conectar"

+1

Gracias por su respuesta. Creé un nuevo usuario de esta manera, intenté iniciar sesión con ellos en SSMS2008 y tengo acceso completo a todas las bases de datos ... – Curt

+1

Hola Curt: va a tener que ver con la configuración de acceso predeterminada, ya sea pública o invitada tanto un nivel de servidor como un nivel de base de datos. Por favor, intente lo anterior y si eso no funciona, hay algunas otras cosas que puedo sugerir (pero la última vez que tuve este problema que lo solucionó) – Irfy

+0

Gracias @lrfy: D – Curt

1

Para cualquier otra persona que se pregunta cómo hacer esto, tengo la siguiente solución para SQL Server 2008 R2 y después:

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

esto dirección exactamente el requisito señalado anteriormente ..

+0

Este comando bloqueará el acceso a TODAS las 50 bases de datos, proporcione las otras declaraciones requeridas también ... – BiLaL

36

creo que esto es lo que nos gusta hacer mucho.

--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 ha creado un usuario y le asigna a esa base de datos antes de hacer
USO [basedatos] CREAR USUARIO hola para el acceso hola CON DEFAULT_SCHEMA = [dbo] Ir

continuación, la amabilidad de eliminarlo haciendo hacer a continuación y siga los pasos

USE yourDB; 
    GO 
    DROP USER newlogin; 
    GO 

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

Hiding databases for a login on Microsoft Sql Server 2008R2 and above

+0

Ahora, ¿cómo lo haría si no puede NIEGAR todo bases de datos primero? El opuesto, de eso, solo restringe el acceso a una base de datos específica. –

Cuestiones relacionadas