답변:
샘플 스크립트
USE master;
GO
CREATE LOGIN [MYDOMAIN\APPLICATION SUPPORT] FROM WINDOWS;
GO
USE mydb;
GO
CREATE USER [MYDOMAIN\APPLICATION SUPPORT] FROM LOGIN [MYDOMAIN\APPLICATION SUPPORT];
GO
CREATE ROLE rSupport;
GO
EXEC sp_addrolemember 'rSupport', 'MYDOMAIN\APPLICATION SUPPORT';
GO
GRANT SELECT, INSERT,UPDATE, etc ON Mytable TO rSupport;
GO
sp_addrolemember
SQL Server 2012부터는 더 이상 사용되지 않으며 ALTER ROLE
대신 사용해야합니다.
SQL Server 내에서 AD 그룹에 권한을 부여하는 것은 비교적 간단합니다. T-SQL 또는 Management Studio를 통해 수행 할 수 있습니다.
예를 들어이라는 AD 그룹이있는 경우 MYDOMAIN\APPLICATION SUPPORT
서버 수준에서 로그인을 만든 다음 개별 데이터베이스에 대한 매핑을 사용하여 데이터 판독기와 같은 약간 더 세부적인 권한을 부여합니다.
이상적으로 모든 응용 프로그램 액세스는 저장 프로 시저 *를 통해 이루어져야하므로 해당 데이터베이스의 저장 프로 시저에 대한 실행 권한 만 필요합니다.
* 보안 관점에서 특정 사용자가 특정 데이터를 볼 수 있도록 프로 시저를 작성하고 해당 프로 시저에 대한 실행 권한을 사용자에게 부여 할 수 있습니다 . 사용자가 직접 쿼리 할 수있게하려면 관련된 모든 테이블에 대해 선택 권한을 부여 해야합니다. 프로 시저를 사용하는 것이 더 쉽고 디버그도 더 쉽습니다.
저장 프로시 저는 테이블 액세스를 추상화하고 액세스를 제한합니다. DBA 유형의 경우 "모든 인스턴스 변수를 볼 수 있습니다. 메소드, getter 또는 setter를 사용하고 싶지 않습니다"와 같습니다.
에서 marc_s 응답 "어떻게 SQL Server의 로그인으로 Active Directory 사용자 그룹을 추가하는 방법" :
SQL Server Management Studio에서 다음으로 이동하여 Object Explorer > (your server) > Security > Logins
마우스 오른쪽 단추를 클릭하십시오 New Login
.
그런 다음 나타나는 대화 상자에서 보려는 개체 유형을 선택하고 ( Groups
기본적으로 사용하지 않도록 설정하십시오! 확인) 개체를 찾을 위치 (예 Entire Directory
:)를 선택한 다음 AD 그룹을 찾으십시오. .
이제 단일 AD 사용자를 위해 로그인 할 때와 마찬가지로 일반 SQL Server 로그인이 있습니다. 새 로그인에 필요한 데이터베이스에 대한 권한을 부여하십시오.
해당 AD 그룹의 모든 구성원은 이제 SQL Server에 로그인하여 데이터베이스를 사용할 수 있습니다.
사용자가 SQL에 Sysadmin 권한이있는 DOMAIN \ SecurityGroup의 구성원 인 경우 데이터베이스에 액세스 할 때 사용됩니다. 그렇지 않으면 각 데이터베이스에서 권한을 부여한 DOMAIN \ SecurityGroup을 확인해야합니다. 사용자가 2 개의 SecurityGroups의 구성원 인 경우 SecGroupA에 선택 권한이 있고 SecGroupB에 삽입 권한이 있으면 사용자가 선택하여 삽입 할 수 있습니다.