2016-07-29 2 views
0

'ReportServer'데이터베이스에만 액세스 할 수 있도록 사용자 매핑이 설정된 SQL Server Management Studio에서 사용자를 설정했습니다. 나는에 액세스 할 수 있도록 사용자를하지 않으사용자가 기본 데이터베이스보기/액세스

enter image description here

, 또는 수 : 나는 MS 말씀을 통해 내 SQL 서버에 연결하면 데이터베이스에 연결하기 위해

, 나는 다음과 같은 옵션을 제공하고있다 master, tempdb 또는 msdb 데이터베이스를 볼 수 있으며이 사용자의 사용자 매핑에서이 데이터베이스를 선택하지 않았습니다. 사용자가이 데이터베이스를 볼 수 없도록 어떻게 설정할 수 있습니까?

답변

0

를 사용하여보기를 DENY ..

DENY VIEW ANY DATABASE TO testuser; 

단계는 일반적으로 포함 .. 기본 데이터베이스와
1.Create 로그인 모든 데이터베이스에 해당 로그인에 대한
2.create 사용자
3 보기 뷰

DENY VIEW ANY DATABASE TO testuser; 

1 단계 :
// 기본 데이터베이스에 로그인을 만들

1.USE [master] 
GO 
CREATE LOGIN loginame FROM WINDOWS WITH DEFAULT_DATABASE='testdb' 
GO 

2 단계 : 모든 데이터베이스에서
2.create 사용자 .. 이제

use testdb 
create user username for loginname 

당신은 해당 사용자에게 권한을 할당 할 수 있습니다 읽기, 쓰기와 같으며 기본적으로이 사용자에게는 하나의 데이터베이스 만 표시됩니다 ..

3 단계 :

DENY VIEW ANY DATABASE TO testuser;--this should be repeated in all databases which you wish to hide from user.. 

아래처럼 해당 사용자에 대한 기본 로그인을 변경할 수 있습니다 login..Then 당신이 aleady 기존의 경우 ..

Exec sp_defaultdb @loginame='login', @defdb='testdb' 

참고 :
https://www.mssqltips.com/sqlservertip/2995/how-to-hide-sql-server-user-databases-in-sql-server-management-studio/

+0

안녕 그곳에. 이것은 msdb를 제거하는 것을 도왔습니다. 그러나 master와 tempdb는 여전히 존재합니다. 내가 숨기고 싶은 모든 데이터베이스에서이 코드를 반복해야한다고 언급했지만 SQL Studio에서는 master db에서 만 사용할 수 있다고 알려줍니다. – LeChuck

+0

은 로그인 생성을 위해 마스터 DB 여야합니다. TempDB의 경우 로그인을 생성 할 필요가 없습니다. 기본적으로 모든 사용자는 login을 사용합니다. 메일 병합과 함께 사용할 수있는 모든 사용자에 대해 windows 그룹을 생성하고이 작업을 수행하는 것이 좋습니다 . – TheGameiswar

관련 문제