다음을 통해 공유


Microsoft Entra 인증을 사용하여 Azure SQL 리소스에 연결

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

이 문서에서는 Microsoft Entra 인증을 사용하여 Azure SQL 데이터베이스, Azure SQL Managed InstanceAzure Synapse Analytics에 연결하는 방법을 설명합니다.

필수 조건

Azure SQL 리소스에 연결하려면 리소스에 대해 Microsoft Entra 인증을 구성해야 합니다.

Microsoft Entra 관리자가 제대로 설정되었는지 확인하려면 Microsoft Entra 관리자 계정을 사용하여 master 데이터베이스에 연결합니다. Microsoft Entra 기반 포함된 데이터베이스 사용자를 만들려면 데이터베이스에 대한 액세스 권한이 있고 최소 ALTER ANY USER 사용 권한이 있는 Microsoft Entra ID를 사용하여 데이터베이스에 연결합니다.

SSMS 또는 SSDT를 사용하여 연결

다음 절차에서는 Microsoft Entra로 SSMS(SQL Server Management Studio) 또는 SSDT(SQL Server Database Tools)를 사용하여 SQL Database에 연결을 안내합니다.

Microsoft Entra Integrated

Microsoft Entra ID에 페더레이션된 Windows 자격 증명을 사용하여 로그인하려는 경우 이 메서드를 사용합니다. 자세한 내용은 Microsoft Entra 원활한 Single Sign-On을 참조하세요.

  1. SSMS 또는 SSDT를 시작하고 서버에 연결(또는 데이터베이스 엔진 연결) 대화 상자의 로그인 탭에서 다음을 수행합니다.

    1. 서버 이름<server-name>.database.windows.net 형식으로 입력합니다.
    2. 인증의 경우 Microsoft Entra 통합을 선택합니다. 연결에 대한 기존 자격 증명이 제공되므로 암호를 입력할 필요가 없습니다.
    3. 암호화의 경우 Azure SQL 리소스에 연결하는 데 사용해야 하는 Strict(SQL Server 2022 및 Azure SQL)를 선택합니다.

    Microsoft Entra 통합 인증을 보여 주는 SSMS의 스크린샷.

  2. 연결 속성 탭의 데이터베이스에 연결 필드에 연결할 사용자 데이터베이스의 이름을 입력합니다.

    옵션 메뉴의 SSMS 스크린샷.

Microsoft Entra 암호

Microsoft Entra 관리되는 도메인 사용하여 Microsoft Entra 보안 주체 이름으로 연결할 경우 이 방법을 사용하세요. 예를 들어 원격으로 작업하는 경우 도메인에 액세스하지 않고 페더레이션된 계정에 사용할 수도 있습니다.

이 방법을 사용하여 Microsoft Entra 클라우드 전용 ID 사용자 또는 Microsoft Entra 하이브리드 ID를 사용하는 사용자를 사용하여 SQL Database 또는 SQL Managed Instance의 데이터베이스에 인증합니다. 이 방법은 Windows 자격 증명을 사용하고자 하지만 로컬 컴퓨터가 도메인에 조인되지 않은 사용자를 지원합니다(예: 원격 액세스 사용). 이 경우 Windows 사용자는 도메인 계정 및 암호를 표시할 수 있으며, SQL Database, SQL Managed Instance 또는 Azure Synapse의 데이터베이스에 인증할 수 있습니다.

  1. SSMS 또는 SSDT를 시작하고 서버에 연결(또는 데이터베이스 엔진 연결) 대화 상자의 로그인 탭에서 다음을 수행합니다.

    1. 서버 이름<server-name>.database.windows.net 형식으로 입력합니다.
    2. 인증에서 Microsoft Entra 암호를 선택합니다.
    3. 사용자 이름 상자에 Microsoft Entra 사용자 이름을 username@domain.com 형식으로 입력합니다. 사용자 이름은 Microsoft Entra ID의 계정이거나 Microsoft Entra ID 관리 또는 페더레이션 도메인 계정이어야 합니다.
    4. 암호 상자에서 Microsoft Entra 계정 또는 관리/페더레이션 도메인 계정의 사용자 암호를 입력합니다.
    5. 암호화의 경우 Azure SQL 리소스에 연결하는 데 사용해야 하는 Strict(SQL Server 2022 및 Azure SQL)를 선택합니다.

    Microsoft Entra 암호 인증을 사용하는 SSMS의 스크린샷.

  2. 연결 속성 탭의 데이터베이스에 연결 필드에 연결할 사용자 데이터베이스의 이름을 입력합니다.

    옵션 메뉴의 SSMS 스크린샷.

Microsoft Entra MFA

이 방법은 암호가 대화형으로 요청되고, MFA(Multi-Factor Authentication)를 사용하는 대화형 인증에 사용합니다. 이 방법을 사용하여 Microsoft Entra 클라우드 전용 ID 사용자 또는 Microsoft Entra 하이브리드 ID를 사용하는 사용자에 대한 SQL Database, SQL Managed Instance 및 Azure Synapse Analytics의 데이터베이스에 인증할 수 있습니다.

다음 단계는 최신 버전의 SSMS에서 다단계 인증을 사용하여 연결하는 방법을 보여 줍니다.

  1. MFA를 사용하여 연결하려면 SSMS의 서버에 연결 대화 상자에서 Microsoft Entra MFA를 선택합니다.

    SSMS의 서버에 연결 대화 상자 스크린샷. 인증 드롭다운 목록 창에서 'Microsoft Entra MFA'가 선택되어 있습니다.

  2. 서버 이름 칸에 서버 이름을 기입합니다. 사용자 이름 칸에 Microsoft Entra 자격 증명을 user_name@domain.com 형식으로 기입합니다.

    모든 필드가 채워진 SSMS의 서버에 연결 대화 상자 설정 스크린샷.

  3. 연결을 선택합니다.

  4. 계정에 로그인하기 대화 상자가 나타나면 2단계에서 제공한 사용자 이름가 미리 채워진 것을 확인할 수 있습니다. 사용자가 Microsoft Entra ID와 페더레이션된 도메인에 속해 있는 경우 암호가 필요하지 않습니다.

    Azure SQL 데이터베이스 및 데이터 웨어하우스용 계정에 로그인 대화 상자의 스크린샷. 계정 이름이 채워져 있습니다.

  5. MFA 관리자 설정에 따라 구성된 방법 중 하나를 사용하여 인증하라는 메시지가 표시됩니다.

  6. 확인이 완료되면 SSMS는 일반적으로 가정된 유효한 자격 증명 및 방화벽 액세스를 연결합니다.

Microsoft Entra 서비스 주체

이 메서드를 사용하여 Microsoft Entra 서비스 주체(Microsoft Entra 애플리케이션)를 사용하여 SQL Database 또는 SQL Managed Instance의 데이터베이스에 인증합니다. 자세한 내용은 Azure SQL과 Microsoft Entra 서버 주체를 참조하세요.

Microsoft Entra - 관리 ID

이 메서드를 사용하여 Microsoft Entra 관리 ID를 사용하여 SQL Database 또는 SQL Managed Instance의 데이터베이스에 인증합니다. 자세한 내용은 Azure SQL Microsoft Entra 관리 ID를 참조하세요.

Microsoft Entra 기본값

Microsoft Entra ID를 사용하는 기본 인증 옵션을 사용하면 관리 ID를 포함하여 암호 없는 비대화형 메커니즘을 통해 수행되는 인증을 사용할 수 있습니다.

클라이언트 애플리케이션에서 연결

다음 절차는 클라이언트 애플리케이션에서 Microsoft Entra ID를 사용하여 SQL Database에 연결하는 방법을 보여 줍니다. Microsoft Entra ID를 사용할 때 사용할 수 있는 인증 방법의 포괄적인 목록은 아닙니다. 자세한 내용은 Microsoft Entra 인증 및 SqlClient로 Azure SQL에 연결하기를 참조하세요.

클라이언트 애플리케이션 구성

참고 항목

System.Data.SqlClient는 더 이상 사용되지 않는 Azure ADAL(Active Directory 인증 라이브러리)을 사용합니다. Microsoft Entra 인증에 System.Data.SqlClient 네임스페이스를 사용하는 경우 애플리케이션을 Microsoft.Data.SqlClientMSAL(Microsoft 인증 라이브러리)로 마이그레이션하세요. .NET에서 사용할 수 있는 연결 방법을 이해하려면 Microsoft Entra 인증 및 SqlClient를 사용하여 Azure SQL에 연결을 참조 하세요.

애플리케이션에서 ADAL.DLL을 계속 사용하려면 이 섹션의 링크를 사용하여 최신 ADAL.DLL 라이브러리가 포함된 최신 ODBC 또는 OLE DB 드라이버를 설치하면 됩니다.

애플리케이션 또는 사용자가 Microsoft Entra ID를 사용하여 SQL Database 또는 Azure Synapse Analytics에 연결하는 모든 클라이언트 컴퓨터에서 다음 소프트웨어를 설치해야 합니다.

다음을 통해 이러한 요구 사항을 충족할 수 있습니다.

  • 최신 버전의 SQL Server Management Studio 또는 SQL Server Data Tools를 설치하면 .NET Framework 4.6 요구 사항이 충족됩니다.
    • SSMS는 x86 버전의 ADAL.DLL을 설치합니다.
    • SSDT는 amd64 버전의 ADAL.DLL을 설치합니다.
    • Visual Studio 다운로드에서 제공되는 최신 Visual Studio는 .NET Framework 4.6 요구 사항을 충족하지만, 필요한 amd64 버전의 ADAL.DLL은 설치되지 않습니다.

Microsoft Entra 통합 인증

통합 Windows 인증을 사용하려면 도메인의 Active Directory가 Microsoft Entra ID와 페더레이션되었거나, 통과 또는 암호 해시 인증을 할 수 있는 원활한 Single Sign-On 구성이 완료된 관리되는 도메인이어야 합니다. 자세한 내용은 Microsoft Entra 원활한 Single Sign-On을 참조하세요.

데이터베이스에 연결하는 클라이언트 애플리케이션(또는 서비스)은 사용자의 도메인 자격 증명으로 도메인에 조인된 컴퓨터에서 실행해야 합니다.

통합 인증 및 Microsoft Entra ID를 사용하여 데이터베이스에 연결하려면 데이터베이스 연결 문자열의 Authentication 키워드를 Active Directory Integrated로 설정해야 합니다. <server_name>을 논리 서버 이름으로 바꿉니다. 다음 C# 코드 예시에서는 ADO.NET을 사용합니다.

string ConnectionString = @"Data Source=<server-name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

연결 문자열 키워드 Integrated Security=True(은)는 Azure SQL 데이터베이스 연결에 지원되지 않습니다. ODBC 연결을 설정할 때는 공백을 제거하고 인증을 ActiveDirectoryIntegrated(으)로 설정해야 합니다.

Microsoft Entra 암호 인증

Microsoft Entra 클라우드 전용 ID 사용자 계정 또는 Microsoft Entra 하이브리드 ID를 사용하는 사용자를 사용하여 데이터베이스에 연결하려면 인증 키워드를 Active Directory Password(으)로 설정해야 합니다. 연결 문자열에는 사용자 ID/UID 및 암호/PWD 키워드와 값이 포함되어 있어야 합니다. <server_name>, <email_address><password>을 적절한 값으로 바꿉니다. 다음 C# 코드 예시에서는 ADO.NET을 사용합니다.

string ConnectionString =
@"Data Source=<server-name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Microsoft Entra 인증 GitHub 데모의 데모 코드 샘플을 사용하여 Microsoft Entra 인증 방법에 대해 자세히 알아보세요.

Microsoft Entra 액세스 토큰

이 인증 방법을 사용하면 중간 계층 서비스를 통해 JSON Web Tokens (JWT)을 토큰을 가져오고, Microsoft Entra ID에서 토큰을 가져와서 SQL Database, SQL Managed Instance 또는 Azure Synapse의 데이터베이스에 연결합니다. 이 방법을 사용하면 인증서 기반 인증을 사용하는 서비스 ID, 서비스 주체 및 애플리케이션을 포함한 다양한 애플리케이션 시나리오를 사용할 수 있습니다. Microsoft Entra 토큰 인증을 사용하려면 다음 네 가지 기본 단계를 완료해야 합니다.

  1. Microsoft Entra ID로 애플리케이션을 등록하고, 코드에 대한 클라이언트 ID를 가져옵니다.
  2. 애플리케이션을 나타내는 데이터베이스 사용자를 만듭니다(Microsoft Entra ID에 매핑된 포함된 사용자 만들기 섹션에 설명된 대로).
  3. 애플리케이션을 실행하는 클라이언트 컴퓨터에서 인증서를 만듭니다.
  4. 인증서를 애플리케이션의 키로 추가합니다.

샘플 연결 문자열: <server-name>을 논리 서버 이름으로 바꿉니다.

string ConnectionString = @"Data Source=<server-name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

자세한 내용은 SQL Server 보안 블로그를 참조하세요. 인증서 추가에 대한 정보는 Microsoft Entra ID에서 인증서 기반 인증 시작를 참조하세요.

Microsoft Entra 다단계 인증

Microsoft Entra 다단계 인증은 모든 SQL 도구에 대해 지원되는 인증 방법입니다. Microsoft Entra ID을 통한 프로그래매틱 인증에 대한 자세한 내용은 MSAL(Microsoft 인증 라이브러리) 개요를 참조하세요.

sqlcmd

다음 문은 sqlcmd 버전 13.1을 사용하여 연결됩니다. SQL Server용 Microsoft 명령줄 유틸리티 14.0 다운로드

참고 항목

-G 명령을 사용하는 sqlcmd는 시스템 ID에서 작동하지 않으며 사용자 주체 로그인이 필요합니다.

sqlcmd -S <database or datawarehouse name>.<server-name>.database.windows.net -G
sqlcmd -S <database or datawarehouse name>.<server-name>.database.windows.net -U adrian@contoso.com -P <password> -G -l 30

Azure 포털에서 연결 쿼리 편집기(Azure SQL 데이터베이스)

Azure SQL 데이터베이스용 Azure Portal 쿼리 편집기에 대한 자세한 내용은 빠른 시작: Azure Portal 쿼리 편집기를 사용하여 Azure SQL 데이터베이스 쿼리하기를 참조하세요.

  1. Azure Portal에서 SQL Database로 이동합니다. 예를 들어 Azure SQL 대시보드를 방문해 보겠습니다.

  2. Azure Portal의 SQL Database 개요 페이지에 있는 왼쪽 메뉴에서 쿼리 편집기를 선택합니다.

  3. SQL Database 쿼리 편집기에 오신 것을 환영합니다 아래 로그인 화면에서 사용자 또는 <그룹 ID>로 계속을 선택합니다.