다음을 통해 공유


Azure SQL Microsoft Entra 인증

적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics

이 문서에서는 Azure SQL 데이터베이스, Azure SQL Managed Instance, Azure VM의 SQL Server, Azure Synapse 분석의 Synapse SQLWindows 및 Linux용 SQL Server에서 Microsoft Entra 인증을 사용하는 방법에 대한 자세한 개요를 제공합니다.

Microsoft Entra 인증을 구성하려면 검토하세요:

참고 항목

Microsoft Entra ID는 이전의 Azure AD(Azure Active Directory)입니다.

개요

Microsoft Entra ID를 사용하면 데이터 자산에서 사용자 및 서비스의 ID를 중앙에서 관리할 수 있습니다. 인증을 위해 Microsoft Entra를 Azure SQL과 통합하면 ID 및 권한 관리를 간소화하는 동시에 데이터에 대한 모든 연결에 대한 자세한 조건부 액세스 및 거버넌스를 사용하도록 설정할 수 있습니다.

Microsoft Entra 인증을 사용하면 다음과 같은 이점이 있습니다.

  • 사용자 이름 및 암호와 같은 덜 안전한 인증 방법을 대체합니다.
  • 서버 간에 사용자 ID가 확산되는 것을 제거하거나 차단하는 데 도움을 줍니다.
  • Microsoft Entra 그룹을 사용하면 데이터베이스 권한 관리를 개별 계정에서 작업 그룹으로 추상화할 수 있습니다.
  • 한 곳에서 암호를 회전할 수 있습니다.
  • Microsoft Entra 전용 인증은 SQL 인증에 대한 완벽한 대안을 제공합니다.
  • Azure 리소스에 대한 관리 ID는 데이터베이스에 연결하는 서비스의 암호와 데이터베이스에서 다른 Azure 리소스로의 연결을 저장할 필요가 없습니다.
  • 전화, 문자 메시지, 핀이 포함된 스마트 카드, 모바일 앱 알림 등 다양한 간편 인증 옵션으로 강력한 다단계 인증을 포함한 최신 보안 제어를 지원합니다.
  • Microsoft Entra ID를 사용하면 OpenID Connect, OAuth2.0, Kerberos 제한 위임 등을 비롯한 다양한 최신 인증 프로토콜과 통합할 수 있습니다.
  • 데이터 원본에 대한 연결의 중앙 집중식 모니터링을 사용하도록 설정합니다.
  • 성공적인 연결을 위해 규격 디바이스 또는 인증 방법을 요구하는 것과 같은 조건부 액세스 제어를 사용하도록 설정합니다.
  • Azure Policy를 사용하여 인증을 중앙에서 관리하고 모니터링합니다.

참고 항목

Microsoft Entra 인증은 타사 액세스 토큰이 아닌 Microsoft Entra ID에서 생성된 액세스 토큰만 지원합니다. 또한 Microsoft Entra ID는 Microsoft Entra ID 쿼리를 타사 엔드포인트로의 리디렉션을 지원하지 않습니다. 이는 모든 SQL 플랫폼 및 Microsoft Entra 인증을 지원하는 모든 운영 체제에 적용됩니다.

구성 단계

Microsoft Entra 인증을 구성하는 일반적인 단계는 다음과 같습니다:

  1. Microsoft Entra 테넌트 만들기 및 채우기.
  2. Azure에서 논리 서버 또는 인스턴스를 만듭니다.
  3. 서버 또는 인스턴스에 Microsoft Entra 관리자를 할당합니다.
  4. 데이터베이스에서 Microsoft Entra ID에 매핑되는 SQL 주체를 만듭니다.
  5. Azure ID 라이브러리 및 인증 방법을 사용하여 연결하도록 클라이언트 애플리케이션을 구성합니다.
  6. Microsoft Entra ID를 사용하여 데이터베이스에 연결합니다.

지원되는 ID 및 인증 방법

Azure SQL은 서버 및 데이터베이스에서 다음 Microsoft Entra ID를 로그인 및 사용자(보안 주체)로 사용할 수 있도록 지원합니다.

  • Microsoft Entra 사용자: 내부 사용자, 외부 사용자, 게스트 및 멤버를 포함한 Microsoft Entra 테넌트의 모든 유형의 사용자. Microsoft Entra ID와 페더레이션된 Active Directory 도메인의 구성원도 지원되며, 원활한 Single Sign-On을 위해 구성할 수 있습니다.
  • 애플리케이션: Azure에 있는 애플리케이션은 서비스 주체 또는 관리 ID를 사용하여 Azure SQL에 직접 인증할 수 있습니다. 관리되는 ID를 사용하면 비밀번호가 필요 없고 개발자가 관리하는 자격 증명이 필요하지 않으므로 인증에 더 유리합니다.
  • 그룹 멤버십을 기반으로 사용자 및 응용 프로그램 액세스를 관리하여 조직 전체의 액세스 관리를 간소화할 수 있는 Microsoft Entra 그룹입니다.

사용자 식별의 경우 다음 인증 방법이 지원됩니다.

  • Microsoft Entra 통합(Windows 인증)은 Active Directory [페더레이션]이 있는 Microsoft Entra 하이브리드 ID에서 지원됩니다.
  • Microsoft Entra MFA 또는 다단계 인증을 사용하려면 사용자의 지식 이외의 추가 보안 검사가 필요합니다.
  • Microsoft Entra ID에 저장 및 관리되는 사용자 자격 증명을 사용하는 Microsoft Entra 암호 인증.
  • 애플리케이션 컴퓨터에서 다양한 자격 증명 캐시를 검색하고 사용자 토큰을 사용하여 SQL에 인증할 수 있는 Microsoft Entra 기본 인증입니다.

서비스 또는 워크로드 식별의 경우 다음 인증 방법이 지원됩니다.

  • 사용자 할당 및 시스템 할당된 Azure 리소스에 대한 관리 식별을 모두 관리합니다. 관리 ID 인증은 토큰 기반이며, 이를 사용하여 인증하려는 리소스에 ID가 할당됩니다. Azure ID 플랫폼은 암호 없는 인증을 가능하게 하는 해당 관계의 유효성을 검사합니다.
  • Microsoft Entra 서비스 주체 이름 및 애플리케이션(클라이언트) 암호. 이 인증 방법은 추측 및 유출될 수 있는 암호와 관련된 위험 때문에 권장되지 않습니다.
  • 애플리케이션 컴퓨터에서 다양한 자격 증명 캐시를 검색하고 애플리케이션 토큰을 사용하여 SQL에 인증할 수 있는 Microsoft Entra 기본 인증입니다.

Microsoft Entra 관리자

Microsoft Entra 인증을 사용하도록 설정하려면 논리 서버 또는 관리되는 인스턴스에 대해 Microsoft Entra 관리자를 설정해야 합니다. 이 관리자는 SA(SQL Server 관리자)와 함께 존재합니다. Microsoft Entra 관리자는 Microsoft Entra 사용자, 그룹, 서비스 주체 및 관리 ID를 포함하여 Azure 테넌트에서 하나의 보안 개체일 수 있습니다. Microsoft Entra 관리자는 목록이 아닌 단수 속성이므로 언제든지 하나의 ID만 구성할 수 있습니다. 서버에서 Microsoft Entra 관리자를 제거하면 데이터베이스에 권한이 있는 기존 Microsoft Entra 사용자에게도 모든 Microsoft Entra 인증 기반 연결이 비활성화됩니다.

Microsoft Entra 그룹을 사용하면 여러 ID가 서버에서 Microsoft Entra 관리자 역할을 할 수 있습니다. 관리자가 그룹으로 설정되면 모든 그룹 구성원이 Microsoft Entra 관리자 역할을 상속합니다. Microsoft Entra 그룹 관리자는 관리 관리를 서버 데이터 평면 작업에서 Microsoft Entra ID 및 그룹 소유자의 손으로 전환하여 관리 효율성을 향상시킵니다. 그룹은 SQL에 연결하는 모든 Microsoft Entra ID에 사용할 수 있으므로 서버 및 데이터베이스에서 한 번 사용자 및 권한 구성을 허용하고 모든 사용자 관리를 그룹에 맡길 수 있습니다.

Microsoft Entra 관리자는 특수한 역할을 수행합니다. 즉, 다른 Microsoft Entra 로그인(SQL Database의 미리 보기)과 사용자를 만들 수 있는 첫 번째 계정이며, 이를 보안 주체라고도 합니다. 관리자는 서버 데이터베이스에 포함된 master 데이터베이스 사용자입니다. 관리자 계정은 모든 사용자 데이터베이스에서 db_owner 역할 멤버이며, 각 사용자 데이터베이스를 dbo 사용자로 입력합니다. 관리자 계정에 대한 자세한 내용은 데이터베이스 및 로그인 관리를 참조하세요.

Microsoft Entra의 주요 기능

참고 항목

Microsoft Entra 서버 주체(로그인)는 현재 Azure SQL 데이터베이스 및 Azure Synapse Analytics에 대한 공개 미리 보기로 제공됩니다. Microsoft Entra 로그인은 일반적으로 Azure SQL Managed Instance 및 SQL Server 2022에서 사용할 수 있습니다.

Microsoft Entra ID는 다음 세 가지 방법으로 Azure SQL에서 보안 주체로 만들 수 있습니다.

  • 서버 보안 주체 또는 로그인 으로(Azure SQL Database 미리 보기)
  • 로그인 기반 사용자로(데이터베이스 보안 주체의 유형)
  • 포함된 데이터베이스 사용자로

Important

Azure SQL에 대한 Microsoft Entra 인증은 Azure RBAC와 통합되지 않습니다. Microsoft Entra ID를 사용하여 Azure SQL에 연결하고 쿼리를 실행하려면 해당 ID를 액세스해야 하는 데이터베이스의 Microsoft Entra 보안 주체로 만들어야 합니다. SQL Server ContributorSQL DB Contributor 역할은 데이터베이스 연결 액세스가 아닌 관리 관련 배포 작업을 보호하는 데 사용됩니다.

로그인(서버 주체)

Microsoft Entra 식별에 대한 서버 주체(로그인)는 일반적으로 Azure SQL 관리형 인스턴스, SQL Server 2022 및 Azure VM의 SQL Server에서 사용할 수 있습니다. Microsoft Entra 로그인은 Azure SQL 데이터베이스용 미리 보기입니다.

다음 T-SQL은 Microsoft Entra 로그인을 만드는 방법을 보여줍니다.

CREATE LOGIN [MSEntraUser] FROM EXTERNAL PROVIDER

Microsoft Entra 로그인에는 sys.server_principals에 다음과 같은 속성 값이 있습니다:

속성
SID(보안 식별자) Microsoft Entra ID 개체 ID의 이진 표현
type E = Microsoft Entra ID의 외부 로그인 또는 애플리케이션
X = Microsoft Entra ID의 외부 그룹
type_desc Microsoft Entra 로그인 또는 앱에 대한 EXTERNAL_LOGIN
Microsoft Entra 그룹에 대한 EXTERNAL_GROUP

로그인 기반 사용자

로그인 기반 사용자는 Microsoft Entra 로그인에 할당된 서버 수준 역할 및 권한을 상속합니다. Microsoft Entra 로그인 기반 사용자는 Azure SQL Database에 대해 미리 보기로 제공됩니다.

다음 T-SQL은 Microsoft Entra ID에 대한 로그인 기반 사용자를 만드는 방법을 보여줍니다.

CREATE USER [MSEntraUser] FROM LOGIN [MSEntraUser]

다음 표에서는 sys.database_principals의 Microsoft Entra 로그인 기반 사용자 속성 값에 대해 자세히 설명합니다.

속성
SID(보안 식별자) Microsoft Entra ID의 개체 ID와 'AADE'의 이진 표현
type E = Microsoft Entra ID의 외부 로그인 또는 애플리케이션
X = Microsoft Entra ID의 외부 그룹
type_desc Microsoft Entra 로그인 또는 앱에 대한 EXTERNAL_LOGIN
Microsoft Entra 그룹에 대한 EXTERNAL_GROUP

포함된 데이터베이스 사용자

포함된 데이터베이스 사용자는 데이터베이스와 함께 이식할 수 있습니다. 서버 또는 인스턴스에 정의된 ID에 대한 연결이 없으므로 중단 없이 한 서버 또는 인스턴스에서 다른 서버로 데이터베이스와 함께 쉽게 이동할 수 있습니다.

다음 T-SQL은 Microsoft Entra ID에 대해 포함된 데이터베이스 사용자를 만드는 방법을 보여줍니다.

CREATE USER [MSEntraUser] FROM EXTERNAL PROVIDER

Microsoft Entra 데이터베이스 기반 사용자는 SID가 구성되는 방식을 제외하고는 sys.database_principals의 로그인 기반 사용자와 동일한 속성 값을 갖습니다:

속성
SID(보안 식별자) Microsoft Entra ID 개체 ID의 이진 표현
type E = Microsoft Entra ID의 외부 로그인 또는 애플리케이션
X = Microsoft Entra ID의 외부 그룹
type_desc Microsoft Entra 로그인 또는 앱에 대한 EXTERNAL_LOGIN
Microsoft Entra 그룹에 대한 EXTERNAL_GROUP

SID가 기반으로 하는 원래 Microsoft Entra GUID를 가져오려면 다음 T-SQL 변환을 사용합니다.

SELECT CAST(sid AS UNIQUEIDENTIFIER) AS EntraID FROM sys.database_principals

주의

서버 또는 인스턴스 수준에서 Microsoft Entra 로그인과 동일한 이름을 가진 포함된 Microsoft Entra 데이터베이스 사용자를 의도치 않게 만들 수 있습니다. 보안 주체가 서로 연결되어 있지 않으므로 데이터베이스 사용자는 서버 로그인에서 권한을 상속하지 않으며 ID가 연결 요청에서 결합되어 정의되지 않은 동작이 발생할 수 있습니다.

다음 T-SQL 쿼리를 사용하여 데이터베이스 사용자가 로그인 기반 사용자인지 또는 포함된 데이터베이스 사용자인지 확인합니다.

SELECT CASE
    WHEN CONVERT(VARCHAR(100), sid, 2) LIKE '%AADE' AND len(sid) = 18 THEN 'login-based user'
    ELSE 'contained database user'
    END AS user_type,
    *
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

다음 T-SQL 쿼리를 사용하여 데이터베이스의 모든 Microsoft Entra 보안 주체를 볼 수 있습니다.

SELECT
  name,
  CAST(sid AS UNIQUEIDENTIFIER) AS EntraID,
  CASE WHEN TYPE = 'E' THEN 'App/User' ELSE 'Group' AS user_type,
  sid
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Microsoft Entra 전용 인증

Microsoft Entra 전용 인증을 사용하도록 설정하면 다른 모든 인증 방법이 사용되지 않으며 Azure SQL에 대한 SA 및 기타 모든 SQL 인증 기반 계정과 Azure SQL Managed Instance에 대한 Windows 인증 포함하는 서버, 인스턴스 또는 데이터베이스에 연결하는 데 사용할 수 없습니다.

시작하려면 Microsoft Entra 전용 인증 구성을 검토하세요.세요.

MFA(다단계 인증) 사용

Microsoft Entra 다단계 인증은 Microsoft에서 제공하는 클라우드 기반 ID 및 액세스 관리 서비스입니다. 다단계 인증은 사용자가 암호 이외의 추가 확인 단계를 제공하도록 요구하여 사용자 로그인 보안을 강화합니다.

Microsoft Entra 다단계 인증은 간단한 로그인 프로세스에 대한 사용자 요구를 충족하는 동시에 데이터 및 애플리케이션에 대한 액세스를 보호하는 데 도움이 됩니다. MFA는 사용자에게 두 개 이상의 인증 요소를 제공하도록 요구하여 사용자 로그인에 추가 보안 계층을 추가합니다. 이러한 요소는 일반적으로 사용자가 알고 있는 정보(암호), 사용자가 소유한 항목(스마트폰 또는 하드웨어 토큰) 및/또는 사용자가 있는 것(바이오 메트릭 데이터)을 포함합니다. MFA는 여러 요소를 결합하여 무단 액세스 가능성을 크게 줄입니다.

다단계 인증은 Azure SQL 데이터베이스, Azure SQL Managed Instance, Azure Synapse AnalyticsSQL Server 2022(16.x) 이상 버전에 대해 지원되는 인증 방법입니다.

시작하려면 Microsoft Entra 다단계 인증 구성을 검토하세요.

Microsoft Entra B2B 지원

모든 SQL 제품의 Microsoft Entra 인증은 기업이 게스트 사용자를 초대하여 조직과 공동 작업할 수 있도록 하는 Microsoft Entra B2B 공동 작업도 지원합니다. 게스트 사용자는 개별 사용자 또는 Microsoft Entra 그룹의 구성원으로 데이터베이스에 연결할 수 있습니다. 자세한 내용은 게스트 사용자 만들기를 참조하세요.

Active Directory에 대한 Microsoft Entra 페더레이션의 트러스트 아키텍처

Microsoft Entra ID는 Active Directory와 같은 친숙한 ID 및 액세스 관리 솔루션과도 통합됩니다. 온-프레미스 AD에 하이브리드 조인하면 Microsoft Entra ID를 통해 페더레이션된 Windows ID가 Single Sign-On 자격 증명을 사용하여 Azure SQL에 연결할 수 있습니다.

페더레이션의 경우 Microsoft Entra ID는 통과 및 암호 해시 인증이라는 두 가지 보안 인증 방법을 제공합니다. Microsoft Entra ID에 온-프레미스 Active Directory 페더레이션하려는 경우 Microsoft Entra 하이브리드 ID 솔루션에 적합한 인증 방법 선택을 검토합니다.

Microsoft Entra 하이브리드 ID의 설정 및 동기화에 대한 자세한 내용은 다음 문서를 참조하세요:

이 다이어그램은 ADFS 인프라(또는 Windows 자격 증명의 경우 사용자/암호)를 사용한 연합 인증 샘플을 보여줍니다.은 아래 다이어그램을 참조하세요. 화살표는 통신 경로 나타냅니다.

Azure SQL용 Microsoft Entra 인증의 다이어그램.

다음 다이어그램은 토큰을 제출하여 클라이언트가 데이터베이스에 연결할 수 있는 페더레이션, 신뢰 및 호스팅 관계를 나타냅니다. Microsoft Entra ID는 토큰을 인증하고 데이터베이스는 토큰을 신뢰하고 발급자 및 기타 세부 정보의 유효성을 검사합니다. 고객 1은 원시 사용자의 경우 Microsoft Entra ID를 나타내거나 페더레이션 사용자의 경우 Microsoft Entra ID를 나타낼 수 있습니다. 고객 2는 가져온 사용자를 포함한 가능한 솔루션을 나타냅니다. 이 예에서는 ADFS가 Microsoft Entra ID와 동기화되는 페더레이션된 Microsoft Entra ID에서 가져옵니다. Microsoft Entra 인증을 사용하여 데이터베이스에 액세스하려면 호스팅 구독이 Microsoft Entra ID에 연결되어 있어야 한다는 점을 이해해야 합니다. 동일한 구독을 사용하여 Azure SQL 또는 Azure Synapse 리소스를 만들어야 합니다.

다이어그램은 Microsoft Entra 구성에서 구독 간의 관계를 보여 줍니다.

사용 권한

Microsoft Entra 관리자에게 할당된 권한은 Azure SQL에서 할당된 보안 주체 권한과 다릅니다. 몇 가지 시나리오에서 Azure SQL은 Microsoft Entra 인증을 사용하기 위한 Microsoft Graph 권한도 필요합니다.

관리자 권한

Microsoft Entra 관리자는 만들 때 다음 권한 및 역할이 할당됩니다.

  • 서버 또는 인스턴스에 있는 각 데이터베이스의 db_owner

다이어그램은 SQL Server와 함께 사용되는 Microsoft Entra ID의 관리자 구조를 보여줍니다.

Azure SQL 권한

사용자를 만들려면 보안 주체에 데이터베이스의 ALTER ANY USER 권한이 필요합니다. 기본적으로 ALTER ANY USER는 서버 관리자 계정, CONTROL ON DATABASE가 있는 데이터베이스 사용자, db_owner 데이터베이스 역할의 구성원에게 부여됩니다.

Azure SQL에서 Microsoft Entra 보안 주체를 만들려면 요청 ID가 보안 주체에 대한 세부 정보를 Microsoft Graph에 쿼리해야 합니다. 초기 배포 시 MS Graph를 쿼리할 수 있는 유일한 ID는 Microsoft Entra 관리자입니다. 따라서 관리자는 다른 Microsoft Entra 보안 주체를 만드는 첫 번째 ID여야 합니다. 그런 다음 다른 주체에게 ALTER ANY USER를 할당하여 다른 Microsoft Entra 주체도 만들 수 있도록 할 수 있습니다.

Microsoft Entra 인증을 사용한 제로 터치 배포

Microsoft Entra 관리자는 데이터베이스에 연결하고 다른 Microsoft Entra 사용자를 만드는 첫 번째 ID여야 하므로 배포 인프라의 ID를 관리자로 추가하는 것이 유용할 수 있습니다. 그러면 배포에서 다른 Microsoft Entra 보안 주체를 만들고 권한을 할당하는 것과 같은 초기 설정을 수행할 수 있습니다. 배포는 PowerShell ARM 템플릿과 같은 도구를 사용하여 자동화된 보안 주체 만들기를 스크립션할 수 있습니다. Azure SQL은 현재 사용자 만들기 및 권한 관리를 구성하기 위해 네이티브 API를 지원하지 않습니다. 이러한 작업은 SQL 인스턴스에 대한 직접 연결을 통해서만 수행할 수 있습니다.

Microsoft Graph 권한

Microsoft Entra 보안 주체 및 몇 가지 다른 시나리오를 만들기 위해 Azure SQL은 Microsoft Graph를 호출하여 Microsoft Entra ID의 ID에 대한 정보를 검색하고 ID의 존재 여부에 대한 유효성을 검사해야 합니다. 이렇게 하려면 SQL 프로세스에 고객 테넌트 내에서 MS Graph 읽기 권한이 있거나 액세스 권한이 있어야 합니다. 이 권한은 다음과 같은 몇 가지 방법으로 이루어집니다.

  • 명령을 실행하는 SQL 보안 주체가 사용자 ID인 경우 MS Graph를 쿼리하기 위해 SQL 인스턴스에 대한 추가 권한이 필요하지 않습니다.
  • 명령을 실행하는 SQL 보안 주체가 서비스 ID(예: 서비스 주체 또는 관리 ID)인 경우 Azure SQL 인스턴스는 MS Graph를 쿼리하기 위한 자체 권한이 필요합니다.
    • 애플리케이션 사용 권한은 논리 서버 또는 관리되는 인스턴스의 주 서버 ID(관리 ID)에 할당할 수 있습니다. SQL 프로세스는 기본 서버 ID를 사용하여 MS Graph와 같은 테넌트에서 다른 Azure 서비스에 인증할 수 있습니다. 다음 표에서는 명령이 성공적으로 실행되는 데 필요한 다양한 시나리오 및 MS Graph 권한을 설명합니다.
시나리오 최소 권한
Microsoft Entra 서비스 주체 또는 관리 ID에 대한 CREATE USER 또는 CREATE LOGIN Application.Read.All
Microsoft Entra 사용자에 대한 CREATE USER 또는 CREATE LOGIN User.Read.All
Microsoft Entra 그룹에 대한 CREATE USER 또는 CREATE LOGIN GroupMember.Read.All
Azure SQL Managed Instance를 사용한 Microsoft Entra 인증 관리되는 인스턴스 ID에 할당된 디렉터리 읽기 권한자 역할

디렉터리 읽기 권한자 역할은 Azure SQL에 필요한 모든 권한을 포함하는 ID에 할당할 수 있는 가장 작은 범위의 역할입니다. 역할을 사용하면 Microsoft Entra 보안 그룹에 할당하고 개별 엔터티에서 개념 그룹으로 관리를 추상화할 수 있다는 이점이 있습니다.

Tools 지원

SSMS(SQL Server Management Studio)다단계 인증을 포함하여 다양한 Microsoft Entra 인증 연결 옵션을 지원합니다.

Visual Studio용 SSDT(SQL Server Data Tools) 는 2015년부터 Microsoft Entra ID를 사용한 암호, 통합 및 대화형 인증을 지원합니다. 자세한 내용은 SSDT(SQL Server Data Tools)의 Microsoft Entra ID 지원을 참조하세요.

  • 현재 Microsoft Entra 사용자는 SSDT 개체 탐색기에 표시되지 않습니다. 해결 방법으로 sys.database_principals에서 사용자를 봅니다.

최소 버전

Azure SQL에서 Microsoft Entra 인증을 사용하려면 다음 도구를 사용할 때 다음과 같은 최소 버전이 필요합니다.

  • SSMS(SQL Server Management Studio) 18.6 이상.
  • Visual Studio 2015용 SQL Server Data Tools 버전 14.0.60311.1(2016년 4월) 이상
  • SqlServer용 .NET Framework 데이터 공급자, 최소 버전은 .NET Framework 4.6입니다.
  • 버전 15.0.1부터 sqlcmd 유틸리티bcp 유틸리티는 다단계 인증을 사용하는 Active Directory 대화형 인증을 지원합니다.
  • SQL Server용 Microsoft JDBC Driver 6.0은 Microsoft Entra 인증을 지원합니다. 또한 연결 속성 설정을 참조하세요.

Microsoft Entra를 통해 Azure SQL 리소스에 연결

Azure SQL 리소스에 대해 Microsoft Entra 인증이 구성되면 SQL Server Management Studio, SQL Server Data Tools클라이언트 애플리케이션을 사용하여 연결할 수 있습니다.

제한 사항

Azure SQL에서 Microsoft Entra 인증을 사용하는 경우 다음 제한 사항을 고려합니다.

  • 2048개 이상의 Microsoft Entra 보안 그룹의 구성원인 Microsoft Entra 사용자 및 서비스 주체(Microsoft Entra 애플리케이션)는 지원되지 않으며 데이터베이스에 로그인할 수 없습니다.

  • 다음 시스템 함수는 지원되지 않으며 Microsoft Entra 주체가 실행할 때 NULL 값을 반환합니다:

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • 연결 제한 시간은 30초로 설정하는 것이 좋습니다.

Azure SQL Database 및 Azure Synapse Analytics

Azure SQL Database 및 Azure Synapse Analytics에서 Microsoft Entra 인증을 사용하는 경우 다음 제한 사항을 고려합니다.

  • db_owner 데이터베이스 역할의 구성원인 그룹에 속한 Microsoft Entra 사용자는 Azure SQL 데이터베이스 및 Azure Synapse에 대해 CREATE DATABASE SCOPED CREDENTIAL 구문을 사용하려고 할 때 다음 오류가 표시될 수 있습니다:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.

    CREATE DATABASE SCOPED CREDENTIAL 문제를 완화하려면 Microsoft Entra 사용자의 ID를 db_owner 역할에 직접 추가하세요.

  • Azure SQL Database 및 Azure Synapse Analytics는 Microsoft Entra 그룹 멤버십의 일부로 로그인한 사용자에 대해 암시적 사용자를 만들지 않습니다. 따라서 Microsoft Entra 그룹이 해당 권한이 있는 역할에 멤버로 추가되더라도 소유권을 할당해야 하는 다양한 작업이 실패합니다.

    예를 들어 db_ddladmin 역할이 있는 Microsoft Entra 그룹을 통해 데이터베이스에 로그인한 사용자는 스키마가 명시적으로 정의되지 않은 CREATE SCHEMA, ALTER SCHEMA 및 기타 개체 만들기 문(예: 테이블, 뷰 또는 형식)을 실행할 수 없습니다. 이 문제를 해결하려면 해당 사용자에 대해 Microsoft Entra 사용자를 만들어야 합니다. 또는 dbo에 DEFAULT_SCHEMA를 할당하려면 Microsoft Entra 그룹을 변경해야 합니다.

  • 지역 복제 및 장애 조치 그룹을 사용할 때는 기본 서버와 보조 서버 모두에 대해 Microsoft Entra 관리자를 구성해야 합니다. 서버에 Microsoft Entra 관리자가 없는 경우 Microsoft Entra 로그인 및 사용자에게 Cannot connect 오류가 발생합니다.

  • 서버의 Microsoft Entra 관리자를 제거하면 서버에 대한 Microsoft Entra 인증 연결이 차단됩니다.연결할 수 없습니다. 필요한 경우 SQL Database 관리자는 사용할 수 없는 Microsoft Entra 사용자를 수동으로 삭제할 수 있습니다.

Azure SQL Managed Instance

Azure SQL Managed Instance에서 Microsoft Entra 인증을 사용하는 경우 다음 제한 사항을 고려합니다.

  • Azure AD 서버 주체(로그인) 및 사용자는 SQL Managed Instance에 대해 지원됩니다.

  • Microsoft Entra 그룹 로그인을 데이터베이스 소유자로 설정하는 것은 SQL Managed Instance에서는 지원되지 않습니다.

    • 이것이 확장되어 그룹이 dbcreator 서버 역할의 일부로 추가되면 이 그룹의 사용자는 SQL Managed Instance에 연결하여 새 데이터베이스를 만들 수 있지만 데이터베이스에 액세스할 수는 없습니다. 새 데이터베이스 소유자는 Microsoft Entra 사용자가 아닌 SA이기 때문입니다. 개별 사용자가 dbcreator 서버 역할에 추가되면 이 문제가 발생하지 않습니다.
  • SQL Managed Instance용 Microsoft Entra 서버 주체(로그인)를 사용하면 sysadmin 역할에 추가할 수 있는 여러 개의 로그인을 만들 수 있습니다.

  • Microsoft Entra 로그인에 대해 SQL 에이전트 관리 및 작업 실행이 지원됩니다.

  • 데이터베이스 백업 및 복원 작업은 Microsoft Entra 서버 주체 로그인에서 실행할 수 있습니다.

  • Microsoft Entra 서버 주체(로그인) 및 인증 이벤트와 관련된 모든 문을 감사할 수 있습니다.

  • sysadmin 서버 역할의 구성원인 Microsoft Entra 서버 주체(로그인)의 관리자 전용 연결이 지원됩니다.

    • SQLCMD 유틸리티 및 SQL Server Management Studio를 통해 지원됩니다.
  • 로그온 트리거는 Microsoft Entra 로그인에서 수신되는 로그온 이벤트에 대해 지원됩니다.

  • Service Broker 및 DB 메일은 Microsoft Entra 로그인을 사용하여 설정할 수 있습니다.

  • 장애 조치(failover) 그룹을 사용하는 경우 기본 인스턴스와 보조 인스턴스 모두에 대해 Microsoft Entra 관리자를 구성해야 합니다. 인스턴스에 Microsoft Entra 관리자가 없는 경우 Microsoft Entra 로그인 및 사용자에게 Cannot connect 오류가 발생합니다.

  • PolyBase는 Microsoft Entra 인증을 사용하여 인증할 수 없습니다.

  • 인스턴스에 대한 Microsoft Entra 관리자를 제거하면 인스턴스에 대한 모든 Microsoft Entra 인증 연결이 차단됩니다. 서버에 연결할 수 없습니다. 필요한 경우 SQL Managed Instance 관리자는 사용할 수 없는 Microsoft Entra 사용자를 수동으로 삭제할 수 있습니다.