SQL Server에서 Active Directory 사용자 그룹을 로그인으로 추가하는 방법


108

Windows 인증을 사용하여 SQL Server에 연결하는 .net 응용 프로그램이 있습니다.

응용 프로그램에서 SQL Server 인증을 사용할 수 없습니다. 우리 프로젝트에 많은 Active Directory 사용자가 있습니다. 따라서 각 AD 사용자에 대해 별도의 로그인 계정을 만드는 대신 SQL Server에서 각 Active Directory 사용자에 대해 별도의 로그인 계정을 만들어야합니다. SQL Server에서 Active Directory 사용자 그룹을 사용할 수있는 방법이 있습니까?

답변:


162

SQL Server Management Studio에서 다음으로 이동하여 Object Explorer > (your server) > Security > Logins마우스 오른쪽 버튼을 클릭합니다 New Login.

여기에 이미지 설명 입력

그런 다음 팝업되는 대화 상자에서보고자하는 개체 유형을 선택하고 ( Groups기본적으로 비활성화되어 있음-확인!) 개체를 찾을 위치 (예 : 사용 Entire Directory)를 선택한 다음 AD 그룹을 찾습니다. .

여기에 이미지 설명 입력

이제 단일 AD 사용자에 대한 로그인을 생성 할 때와 마찬가지로 일반 SQL Server 로그인이 생깁니다. 새 로그인에 필요한 데이터베이스에 대한 권한을 부여하고 이동하십시오!

해당 AD 그룹의 모든 구성원은 이제 SQL Server에 로그인하여 데이터베이스를 사용할 수 있습니다.


위와 같이 mysql에서 그룹을 생성 할 기회가 있습니까?
uzay95

2
주석이 달린 스크린 샷으로 매우 명확한 답변을 해주셔서 감사합니다! 나는 ... 모든 대답은 다음과 같이 있었으면
NickG

1
@NickG : 무료 Paint.NET 을 사용하여 이미지를로드하고 둥근 빨간색 사각형을 삽입했습니다.
marc_s

7
이것은 나를 위해 작동하지 않습니다. "UserX"가 구성원 인 Windows 그룹 "DataAccess"가 있습니다. DataAccess 그룹에 대한 로그인을 만들고 데이터베이스에 대한 공용, 데이터 판독기 및 데이터 기록기 액세스를 갖도록 로그인의 사용자 매핑을 설정했습니다. 사용자는 로그인 할 수 없습니다. 사용자를 구체적으로 추가하고 정확히 동일한 매핑 권한을 할당하면 로그인 할 수 있습니다. 그룹에 대해 보안 기능> 유효 권한을 클릭하면 "서버 주체로 실행할 수 없습니다. 주체 'GroupName'이 종료되지 않기 때문에이 유형의 주체를 가장 할 수 없거나 권한이 없습니다. "
Triynko 2013-06-05

1
@ 팀 : 사용자 이름 - 여전히 사용자의 점에서 로그 - 그는 단지 직접 퍼미션 아니에요 - 사용자로 -하지만 권한이 해당 그룹의 구성원이로
marc_s을

21

T-SQL을 사용할 수 있습니다.

use master
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName

나는 이것을 프로덕션 서버에서 테스트 머신으로 복원하는 일부로 사용합니다.

USE master
GO
ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak'
ALTER DATABASE yourDbName SET ONLINE
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO

독일어 또는 프랑스어 Windows의 경우 지역화 된 서비스 이름을 사용해야 합니다. 영어가 아닌 Windows에서 서비스 계정에 대한 SQL Server 로그인을 만드는 방법을 참조하십시오 .


데이터베이스 수준 로그인 / 주체도 설정해야하는 경우 유용한 답변이 있습니다. dba.stackexchange.com/a/2578/60876
Agostino

특정 스키마에 대한 읽기 액세스 권한을 특정 Active Directory 그룹에 부여하는 데 사용할 수 있는지 궁금합니다. 의사 SQL CREATE LOGIN ... WITH DEFAULT_SCHEMA에서 점 ... 은 특정 광고 그룹을 참조해야합니다. 여러 그룹이 있으며 활성 디렉토리 그룹 accountants에 스키마 ´A´에 대한 액세스 권한을 부여하고 ´B´ 및 ´C´ 스키마에는 액세스하지 않으려 고합니다. 마찬가지로 그룹 'billing'은 스키마 'B'에만 액세스 할 수 있어야합니다. 프런트 엔드로서 우리는 msft 액세스를 사용하고 있습니다.
surfmuggle

0

SQL Server Management Studio로 이동하여 보안으로 이동하고 로그인으로 이동하여 마우스 오른쪽 단추로 클릭하십시오. "새 로그인"버튼이있는 메뉴가 나타납니다. 여기에서 Active Directory의 사용자 및 / 또는 그룹을 SQL Server "권한"에 추가 할 수 있습니다. 도움이 되었기를 바랍니다


0

여기 내 관찰이 있습니다. 그룹 창 (AD) 사용자 계정에 대한 로그인 (읽기 전용)을 만들었지 만 다른 SQL 서버에서 도전적으로 작동합니다. 사용자가 데이터베이스를 볼 수없는 SQl 서버에서는 뷰 정의를 추가하고 오류 229를 피하기 위해 데이터베이스 실행 침투를 마스터 데이터베이스에 부여했습니다. 사용자에 대한 로그인을 생성하면이 문제가 발생하지 않습니다.


답변을 사용하지 않고 댓글을 달 수 있습니다. 하지만 아직 댓글을 달 수 없습니다. 그러니 하하 ^^
finnmglas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.