SQL Server Data Tools에 대한 필수 권한

Visual Studio에서 데이터베이스에 대한 작업을 수행하려면 먼저 해당 데이터베이스에 대한 특정 사용 권한이 있는 계정으로 로그온해야 합니다. 필요한 특정 사용 권한은 수행하려는 작업에 따라 달라집니다. 다음 구역에서는 수행하려는 각 작업과 수행할 때 필요한 특정 권한에 대해 설명합니다.

데이터베이스를 만들거나 배포할 수 있는 권한

데이터베이스를 만들거나 배포하려면 다음과 같은 사용 권한이 있어야 합니다.

actions 필요한 권한
데이터베이스 개체 및 설정 가져오기 원본 데이터베이스에 연결할 수 있어야 합니다.

원본 데이터베이스가 SQL Server 2005를 기반으로 하는 경우 각 개체에 대한 VIEW DEFINITION 권한도 가지고 있어야 합니다.

원본 데이터베이스가 SQL Server 2008 이상을 기반으로 하는 경우 각 개체에 대한 VIEW DEFINITION 권한도 가지고 있어야 합니다. 로그인하려면 데이터베이스 암호화 키에 대한 VIEW SERVER STATE 권한이 있어야 합니다.
서버 개체 및 설정 가져오기 지정된 서버의 master 데이터베이스에 연결할 수 있어야 합니다.

서버가 SQL Server 2005를 실행하는 경우 해당 서버에 대한 VIEW ANY DEFINITION 권한이 있어야 합니다.

원본 데이터베이스가 SQL Server 2008 이상을 기반으로 하는 경우 해당 서버에 대한 VIEW ANY DEFINITION 권한이 있어야 합니다. 로그인하려면 데이터베이스 암호화 키에 대한 VIEW SERVER STATE 권한이 있어야 합니다.
데이터베이스 프로젝트 만들기 또는 업데이트 데이터베이스 프로젝트를 만들거나 수정하는데 데이터베이스 권한이 필요하지는 않습니다.
새 데이터베이스를 배포하거나 또는 Always Re-create Database 옵션 집합을 사용하여 배포합니다. CREATE DATABASE 권한이 있거나 대상 서버에서 dbcreator 역할의 구성원여야 합니다.

데이터베이스를 만들 때 Visual Studio는 model 데이터베이스에 연결하여 그 콘텐츠를 복사합니다. 대상 데이터베이스에 연결하는 데 사용하는 초기 로그인(예: yourLogin)에는 db_creatorCONNECT SQL 권한이 있어야 합니다. 이 로그인에는 모델 데이터베이스에 대한 사용자 매핑이 있어야 합니다. sysadmin 권한이 있는 경우 다음 Transact-SQL 문을 실행하여 매핑을 만들 수 있습니다.

USE [model] CREATE USER yourUser FROM LOGIN yourLogin

사용자(이 예제에서 yourUser)에는 model 데이터베이스에 대한 CONNECTVIEW DEFINITION 권한이 있어야 합니다. sysadmin 권한이 있는 경우 다음 Transact-SQL 문을 실행하여 이러한 권한을 부여할 수 있습니다.

USE [model] GRANT CONNECT to yourUser GRANT VIEW DEFINITION TO yourUser

명명되지 않은 제약 조건이 포함된 데이터베이스를 배포하고 CheckNewContraints 옵션을 사용하도록 설정한 경우(기본적으로 사용하도록 설정됨) db_owner 또는 sysadmin 권한이 있어야 하며 그렇지 않으면 배포가 실패합니다. 이는 명명되지 않은 제약 조건에만 적용됩니다. CheckNewConstraints 옵션에 대한 자세한 내용은 데이터베이스 프로젝트 설정을 참조하세요.
기존 데이터베이스에 업데이트를 배포합니다. 유효한 데이터베이스 사용자여야 합니다. 또한 db_ddladmin 역할의 구성원이거나, 스키마를 소유하거나, 또는 대상 데이터베이스에서 만들거나 수정하려는 개체를 소유해야 합니다. 배포 전 또는 배포 후 스크립트에서 로그인 또는 연결된 서버와 같은 고급 개념을 사용하려면 추가 권한이 필요합니다.

참고: master 데이터베이스에 배포하는 경우 배포할 서버에 대한 VIEW ANY DEFINITION 권한도 있어야 합니다.
데이터베이스 프로젝트에서 EXTERNAL_ACCESS 옵션과 함께 어셈블리 사용 데이터베이스 프로젝트에 대한 TRUSTWORTHY 속성을 설정해야 합니다. SQL Server 로그인에 대한 EXTERNAL ACCESS ASSEMBLY 권한이 있어야 합니다.
새 데이터베이스 또는 기본 데이터베이스에 어셈블리 배포 대상 배포 서버에 대한 sysadmin 역할의 멤버여야 합니다.

자세한 내용은 SQL Server 온라인 설명서를 참조하세요.

데이터베이스를 리팩터링할 수 있는 권한

데이터베이스 리팩터링은 데이터베이스 프로젝트 내에서만 발생합니다. 데이터베이스 프로젝트를 사용할 수 있는 권한이 있어야 합니다. 대상 데이터베이스에 대한 변경 내용을 배포하기 전까지는 대상 데이터베이스에 대한 사용 권한이 필요하지 않습니다.

SQL Server 데이터베이스에서 단위 테스트를 수행할 수 있는 권한

데이터베이스에 대한 단위 테스트를 수행하려면 다음과 같은 사용 권한이 있어야 합니다.

actions 필요한 권한
테스트 작업 실행 실행 컨텍스트 데이터베이스 연결을 사용해야 합니다. 자세한 내용은 연결 문자열 및 사용 권한 개요를 참조하세요.
사전 테스트 또는 사후 테스트 작업 실행 권한 있는 컨텍스트 데이터베이스 연결을 사용해야 합니다. 이 데이터베이스 연결에는 실행 컨텍스트 연결보다 더 많은 권한이 있습니다.
TestInitialize 및 TestCleanup 스크립트 실행 권한 있는 컨텍스트 데이터베이스 연결을 사용해야 합니다.
테스트를 실행하기 전에 데이터베이스 변경 내용 배포 권한 있는 컨텍스트 데이터베이스 연결을 사용해야 합니다. 자세한 내용은 방법: SQL Server 단위 테스트 실행 구성을 참조하세요.
테스트를 실행하기 전에 데이터 생성 권한 있는 컨텍스트 데이터베이스 연결을 사용해야 합니다. 자세한 내용은 방법: SQL Server 단위 테스트 실행 구성을 참조하세요.

데이터를 생성할 수 있는 권한

데이터 생성기를 사용하여 테스트 데이터를 생성하려면 대상 데이터베이스의 개체에 대한 INSERTSELECT 권한이 있어야 합니다. 데이터를 생성하기 전에 데이터를 제거하는 경우 대상 데이터베이스의 개체에 대한 DELETE 권한도 있어야 합니다. 테이블에서 IDENTITY 열을 다시 설정하려면 테이블을 소유해야 하며, 그렇지 않으면 db_owner 또는 db_ddladmin 역할의 구성원이어야 합니다.

스키마 및 데이터를 비교할 수 있는 권한

스키마 또는 데이터를 비교하려면 다음 권한이 있어야 합니다.

actions 필요한 권한
두 데이터베이스의 스키마 비교 데이터베이스를 만들거나 배포할 수 있는 권한에 설명된 대로 데이터베이스에서 개체 및 설정을 가져올 수 있는 권한이 있어야 합니다.
데이터베이스와 데이터베이스 프로젝트의 스키마를 비교합니다. 데이터베이스를 만들거나 배포할 수 있는 권한에 설명된 대로 데이터베이스에서 개체 및 설정을 가져올 수 있는 권한이 있어야 합니다. 또한 Visual Studio에서 데이터베이스 프로젝트가 열려 있어야 합니다.
대상 데이터베이스에 업데이트 작성 데이터베이스를 만들거나 배포할 수 있는 권한에 설명된 대로 대상 데이터베이스에 업데이트를 배포할 수 있는 권한이 있어야 합니다.
두 데이터베이스의 데이터 비교 도구 두 데이터베이스의 스키마를 비교하는 데 필요한 권한 외에도 비교하려는 모든 테이블에 대한 SELECT 권한과 VIEW DATABASE STATE 권한이 필요합니다.

자세한 내용은 SQL Server 온라인 설명서를 참조하세요.

Transact-SQL 편집기를 실행할 수 있는 권한

Transact-SQL 편집기 내에서 수행할 수 있는 작업은 대상 데이터베이스에 대한 실행 컨텍스트에 따라 결정됩니다.

SQL Server 공용 언어 런타임 프로젝트에 대한 권한

다음 표에서는 CLR 프로젝트를 배포하거나 디버그해야 하는 권한을 나열합니다.

actions 필요한 권한
안전한 권한 집합 어셈블리의 배포(초기 또는 증분) db_DDLAdmin - 이 권한은 배포하는 어셈블리 및 개체 형식에 대해 CREATE 및 ALTER 권한을 부여합니다.

데이터베이스 수준 VIEW DEFINITION - 배포하는 데 필요합니다.

데이터베이스 수준 CONNECT - 데이터베이스에 연결할 수 있도록 합니다.
external_access 권한 집합 어셈블리 배포 db_DDLAdmin - 이 권한은 배포하는 어셈블리 및 개체 형식에 대해 CREATE 및 ALTER 권한을 부여합니다.

데이터베이스 수준 VIEW DEFINITION - 배포하는 데 필요합니다.

데이터베이스 수준 CONNECT - 데이터베이스에 연결할 수 있도록 합니다.

또한 다음 항목도 있어야 합니다.

TRUSTWORTHY 데이터베이스 옵션 집합이 ON으로 설정

배포하는 데 사용하는 로그인에는 외부 액세스 어셈블리 서버 권한이 있어야 합니다.
안전하지 않은 권한 집합 어셈블리 배포 db_DDLAdmin - 이 권한은 배포하는 어셈블리 및 개체 형식에 대해 CREATE 및 ALTER 권한을 부여합니다.

데이터베이스 수준 VIEW DEFINITION - 배포하는 데 필요합니다.

데이터베이스 수준 CONNECT - 데이터베이스에 연결할 수 있도록 합니다.

또한 다음 항목도 있어야 합니다.

TRUSTWORTHY 데이터베이스 옵션 집합이 ON으로 설정

배포하는 데 사용하는 로그인에는 안전하지 않은 어셈블리 서버 권한이 있어야 합니다.
SQL CLR 어셈블리 원격 디버그 sysadmin 고정 역할 권한이 있어야 합니다.

Important

모든 경우, 어셈블리 소유자는 어셈블리를 배포하는 데 사용할 사용자이거나 사용자가 멤버인 역할이어야 합니다. 이 요구 사항은 배포하는 어셈블리에서 참조하는 어셈블리에도 적용됩니다.

참고 항목

SQL Server 단위 테스트 만들기 및 정의
SQL Server Data Tools