자습서: SQL Server에 대한 Microsoft Entra 인증 설정

적용 대상: SQL Server 2022(16.x)

이 문서에서는 Microsoft Entra ID로 인증을 설정하는 단계별 프로세스를 설명하고 다른 Microsoft Entra 인증 방법을 사용하는 방법을 보여 줍니다.

참고 항목

Microsoft Entra ID 는 이전에 Azure AD(Azure Active Directory)라고 했습니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • Microsoft Entra 애플리케이션 만들기 및 등록
  • Microsoft Entra 애플리케이션에 사용 권한 부여
  • 인증서 만들기 및 할당
  • Azure Portal을 통해 SQL Server에 대한 Microsoft Entra 인증 구성
  • 로그인 및 사용자 만들기
  • 지원되는 인증 방법으로 연결

필수 조건

  • SQL Server 2022(16.x) 인스턴스가 있는 물리적 또는 가상 Windows Server 온-프레미스입니다.

    Azure VM의 SQL Server의 경우 Azure VM에서 SQL Server 2022에 대한 Microsoft Entra 인증을 검토 합니다.

  • Azure Arc에서 사용하도록 설정된 서버 및 인스턴스입니다. 자세한 내용은 SQL Server를 Azure Arc에 커넥트 참조하세요.

  • Microsoft Entra ID에 대한 액세스는 인증 목적으로 사용할 수 있습니다. 자세한 내용은 SQL Server에 대한 Microsoft Entra 인증을 참조 하세요.

  • SSMS(SQL Server Management Studio) 버전 18.0 이 클라이언트 컴퓨터에 설치되어 있습니다. 또는 최신 Azure Data Studio를 다운로드하세요.

인증 필수 구성 요소

참고 항목

SQL Server에 대한 Microsoft Entra 관리자를 설정하는 동안 Azure Key Vault 인증서 및 Microsoft Entra 애플리케이션을 자동으로 만들 수 있도록 Azure에서 확장 기능이 구현되었습니다. 자세한 내용은 자습서: 자동화를 사용하여 SQL Server용 Microsoft Entra 관리자를 설정합니다.

  • SQL Server에 대한 Microsoft Entra 애플리케이션 등록입니다. SQL Server 인스턴스를 Microsoft Entra 애플리케이션으로 등록하면 인스턴스가 Microsoft Entra ID를 쿼리할 수 있으며 Microsoft Entra 애플리케이션이 SQL Server 인스턴스를 대신하여 인증할 수 있습니다. 또한 애플리케이션 등록에는 SQL Server에서 특정 쿼리에 사용하는 몇 가지 권한이 필요합니다.

  • SQL Server는 AKV(Azure Key Vault)에 저장된 이 인증에 인증서를 사용합니다. Azure Arc 에이전트는 인증서를 SQL Server 인스턴스 호스트에 다운로드합니다.

Warning

Microsoft Entra ID로 인증된 커넥트 이온은 항상 암호화됩니다. SQL Server에서 자체 서명된 인증서를 사용하는 경우 연결 문자열 추가 trust server cert = true 해야 합니다. SQL Server 및 Windows 인증된 연결에는 암호화가 필요하지 않지만 강력하게 권장됩니다.

Microsoft Entra 애플리케이션 만들기 및 등록

  1. Azure Portal로 이동하여 Microsoft Entra ID>앱 등록 새 등록>선택합니다.
    1. 이름 지정 - 이 문서의 예제에서는 SQLServerCTP1을 사용합니다.
    2. 지원되는 계정 유형을 선택하고, 이 조직 디렉터리에 있는 계정만을 사용합니다
    3. 리디렉션 URI 설정 안 함
    4. 등록을 선택합니다.

아래 애플리케이션 등록을 참조하세요.

Screenshot of registering application in the Azure portal.

애플리케이션 사용 권한 부여

새로 만든 애플리케이션을 선택하고, 왼쪽 메뉴에서 API 권한을 선택합니다.

  1. 권한 추가>Microsoft Graph>애플리케이션 권한을 선택합니다

    1. Directory.Read.All 확인란을 선택합니다
    2. 권한 추가 선택
  2. 권한 추가>Microsoft Graph>위임된 권한을 선택합니다

    1. Application.Read.All 확인란을 선택합니다
    2. Directory.AccessAsUser.All 확인란을 선택합니다
    3. Group.Read.All 확인란을 선택합니다
    4. User.Read.All 확인란을 선택합니다
    5. 권한 추가 선택
  3. 관리자 동의 부여 선택

Screenshot of application permissions in the Azure portal.

참고 항목

위의 사용 권한에 관리 동의를 부여하려면 Microsoft Entra 계정에 전역 관리istrator 또는 Privileged Role 관리istrator 역할이 필요합니다.

인증서 만들기 및 할당

  1. Azure Portal로 이동하여 키 자격 증명 모음을 선택한 다음 사용하려는 키 자격 증명 모음을 선택하거나 새 키 자격 증명 모음을 만듭니다. 인증서>생성/가져오기를 선택합니다

    1. 인증서를 만드는 방법에서 생성을 사용합니다.

    2. 인증서 이름 및 주체를 추가합니다.

    3. 권장되는 유효 기간은 최대 12개월입니다. 나머지 값은 기본값으로 둬도 됩니다.

    4. 만들기를 선택합니다.

    Screenshot of creating certificate in the Azure portal.

    참고 항목

    만들어진 인증서가 사용 안 함으로 표시될 수 있습니다. 사이트를 새로 고치면 인증서를 사용할 수 있다고 표시됩니다.

  2. 새 인증서로 이동하고, 인증서의 최신 버전에 대한 행을 선택합니다. 인증서의 공개 키를 저장하려면 CER 형식으로 다운로드를 선택합니다.

    Screenshot of certificate in the Azure portal where you can view and download the certificate.

    참고 항목

    이 작업은 SQL Server 호스트에서 수행할 필요가 없습니다. 대신 다음 단계를 위해 Azure Portal에 액세스하는 클라이언트에서 수행하면 됩니다.

  3. Azure Portal에서 위에서 만든 앱 등록으로 이동하고 인증서 목록을 선택합니다.

    1. 인증서 업로드를 선택합니다.
    2. 마지막 단계에서 다운로드한 공개 키(.cer 파일)를 선택합니다.
    3. 추가를 선택합니다.

    Screenshot of certificate and secrets menu in the Azure portal.

  4. Azure Portal에서 인증서가 저장된 Azure Key Vault 인스턴스로 이동하고 탐색 메뉴에서 액세스 정책을 선택합니다.

    1. 만들기를 실행합니다.

    2. 비밀 권한의 경우 가져오기목록을 선택합니다.

    3. 인증서 사용 권한의 경우 가져오기목록을 선택합니다.

    4. 다음을 선택합니다.

    5. 보안 주체 페이지에서 SQL Server 호스트의 호스트 이름인 Machine - Azure Arc 인스턴스의 이름을 검색합니다.

      Screenshot of Azure Arc server resource in portal.

    6. 다음을 두 번 선택하거나 검토 + 만들기를 선택하여 애플리케이션(선택 사항) 페이지를 건너뜁니다.

      보안 주체"개체 ID"가 인스턴스에 할당된 관리 ID의 보안 주체 ID와 일치하는지 확인합니다.

      Screenshot of Azure portal to review and create access policy.

      확인하려면 리소스 페이지로 이동하여 개요 페이지의 Essentials 상자 오른쪽 위에 있는 JSON 보기를 선택합니다. ID 아래에서 principalId를 찾습니다.

      Screenshot of portal control of JSON view of machine definition.

    7. 만들기를 실행합니다.

    사용 권한이 적용되는지 확인하려면 만들기를 선택해야 합니다. 사용 권한이 저장되었는지 확인하려면 브라우저 창을 새로 고치고 Azure Arc 인스턴스에 대한 행이 여전히 있는지 검사.

    Screenshot of adding access policy to the key vault in the Azure portal.

Azure Portal을 통해 SQL Server에 대한 Microsoft Entra 인증 구성

참고 항목

Azure CLI, PowerShell 또는 ARM 템플릿을 사용하여 SQL Server에 대한 Microsoft Entra 관리자를 설정할 수 있습니다.

  1. Azure Portal로 이동하여 SQL Server – Azure Arc를 선택하고 SQL Server 호스트의 인스턴스를 선택합니다.

  2. SQL Server - Azure Arc 리소스의 상태를 확인하고, 속성 메뉴로 이동하여 연결되어 있는지 확인합니다. 자세한 내용은 SQL Server - Azure Arc 리소스 유효성 검사를 참조하세요.

  3. 리소스 메뉴의 설정 아래에서 Microsoft Entra ID 및 Purview를 선택합니다.

  4. 관리 설정을 선택하여 Microsoft Entra ID 창을 열고 SQL Server에 대한 관리자 로그인으로 설정할 계정을 선택합니다.

  5. 고객 관리 인증서를 선택하고, 인증서를 선택합니다.

  6. 인증서 변경을 선택하고 새 창에서 이전에 만든 AKV 인스턴스 및 인증서를 선택합니다.

  7. 고객 관리 앱 등록을 선택합니다.

  8. 앱 등록 변경을 선택하고, 이전에 만든 앱 등록을 선택합니다.

  9. 저장을 선택합니다. 그러면 Arc 서버 에이전트에 요청을 보내며, 이 에이전트는 해당 SQL Server 인스턴스에 대한 Microsoft Entra 인증을 구성합니다.

    Screenshot of setting Microsoft Entra authentication in the Azure portal.

    인증서를 다운로드하고 설정을 구성하는 데 몇 분이 소요됩니다. Azure Portal에서 모든 매개 변수를 설정하고 저장을 선택한 후 SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing 메시지가 나타날 수 있습니다. Microsoft Entra 로그인을 시도하기 전에 저장 프로세스가 확인 Saved successfully될 때까지 기다립니다.

    Azure Arc 서버 에이전트는 이전 작업이 완료되어야만 업데이트할 수 있습니다. 즉, 마지막 구성이 완료되기 전에 새 Microsoft Entra 구성을 저장하면 오류가 발생할 수 있습니다. 저장을 선택할 때 확장 호출이 실패했습니다 메시지가 표시되면 5분 동안 기다렸다가 다시 시도합니다.

    참고 항목

    Microsoft Entra 관리자 로그인에 역할이 부여 sysadmin 되면 Azure Portal에서 Microsoft Entra 관리자를 변경해도 <>sysadmin/>로 다시 기본 이전 로그인이 제거되지 않습니다. 로그인을 제거하려면 수동으로 삭제해야 합니다.

    SQL Server 인스턴스에 대한 Microsoft Entra 관리자 변경은 SQL Server의 Azure Arc 에이전트로 프로세스가 완료되면 서버를 다시 시작하지 않고 수행됩니다. 새 관리자가 표시 sys.server_principals하려면 SQL Server 인스턴스를 다시 시작해야 하며, 그때까지 이전 관리자가 표시됩니다. 현재 Microsoft Entra 관리자는 Azure Portal에서 검사 수 있습니다.

로그인 및 사용자 만들기

SQL Server 호스트의 Azure Arc 에이전트가 작업을 완료하면 포털의 Microsoft Entra ID 메뉴에서 선택한 관리자 계정이 SQL Server 인스턴스에 있습니다sysadmin. SSMS 또는 Azure Data Studio와 같은 클라이언트를 사용하여 서버에 대한 권한이 있는 sysadmin Microsoft Entra 관리자 계정으로 SQL Server에 로그인합니다.

참고 항목

Microsoft Entra 인증으로 수행되는 SQL Server에 대한 모든 연결에는 암호화된 연결이 필요합니다. DBA(데이터베이스 관리자)가 서버의 신뢰할 수 있는 SSL/TLS 인증서를 설정하지 않은 경우 신뢰할 수 없는 기관에서 인증서 체인을 발급했습니다.라는 메시지와 함께 로그인이 실패할 수 있습니다. 이 문제를 해결하려면 클라이언트가 신뢰할 수 있는 SSL/TLS 인증서를 사용하도록 SQL Server 인스턴스를 구성하거나 고급 연결 속성에서 서버 인증서 신뢰를 선택합니다. 자세한 내용은 데이터베이스 엔진에 대해 암호화 연결 사용을 참조하세요.

로그인 구문 만들기

이제 Azure SQL Database 및 Azure SQL Managed Instance에서 Microsoft Entra 로그인 및 사용자를 만들기 위한 동일한 구문을 SQL Server에서 사용할 수 있습니다.

참고 항목

SQL Server에서 사용 권한이 있는 ALTER ANY USER 모든 계정은 ALTER ANY LOGIN 각각 Microsoft Entra 로그인 또는 사용자를 만들 수 있습니다. 계정이 Microsoft Entra 로그인일 필요는 없습니다.

Microsoft Entra 계정에 대한 로그인을 만들려면 데이터베이스에서 master 다음 T-SQL 명령을 실행합니다.

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

사용자의 경우 보안 주체 이름은 형식 user@tenant.com이어야 합니다. Microsoft Entra ID에서 사용자 계정 이름입니다. Microsoft Entra 그룹 또는 애플리케이션과 같은 다른 모든 계정 유형의 경우 보안 주체 이름은 Microsoft Entra 개체의 이름입니다.

몇 가지 예는 다음과 같습니다.

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

데이터베이스에서 Microsoft Entra 로그인을 master 나열하려면 T-SQL 명령을 실행합니다.

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Microsoft Entra 사용자 멤버 자격을 sysadmin 역할에 부여하려면(예admin@contoso.com: ) 다음 명령을 실행합니다.master

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

저장 프로시저는 sp_addsrvrolemember SQL Server sysadmin 서버 역할의 멤버로 실행되어야 합니다.

사용자 구문 만들기

Microsoft Entra ID에서 서버 보안 주체(로그인)와 연결된 데이터베이스 사용자 또는 포함된 데이터베이스 사용자로 데이터베이스 사용자를 만들 수 있습니다.

SQL Server 데이터베이스의 Microsoft Entra 로그인에서 Microsoft Entra 사용자를 만들려면 다음 구문을 사용합니다.

CREATE USER [principal_name] FROM LOGIN [principal_name];

principal_name 구문은 로그인의 경우에도 동일합니다.

다음 몇 가지 예를 참조하세요.

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

서버 로그인에 연결되지 않은 Microsoft Entra 포함 데이터베이스 사용자를 만들려면 다음 구문을 실행할 수 있습니다.

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

그룹 또는 애플리케이션에서 Microsoft Entra 데이터베이스 사용자를 만들 때 Microsoft <principal name> Entra 그룹 이름 또는 Microsoft Entra 애플리케이션 이름을 사용합니다.

다음 몇 가지 예를 참조하세요.

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

데이터베이스에서 만든 사용자를 나열하려면 다음 T-SQL 명령을 실행합니다.

SELECT * FROM sys.database_principals;

새 데이터베이스 사용자에게는 기본적으로 커넥트 권한이 부여됩니다. 다른 모든 SQL Server 권한은 권한 부여자가 명시적으로 부여해야 합니다.

Microsoft Entra 게스트 계정

CREATE LOGINCREATE USER 구문은 게스트 사용자도 지원합니다. 예를 들어 테넌트에 초대된 contoso.com 경우 testuser@outlook.com 다른 Microsoft Entra 사용자 또는 로그인을 만드는 것과 동일한 구문을 사용하여 SQL Server에 로그인으로 추가할 수 있습니다. 게스트 사용자 및 로그인을 만들 때 테넌트의 사용자 계정 이름이 아닌 게스트 계정의 원래 전자 메일을 사용합니다. 예제 outlook.com 에서는 계정이 테넌트에 등록되어 contoso.com 있더라도 제공됩니다.

기존 로그인에서 게스트 사용자 만들기

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

포함된 사용자로 게스트 사용자 만들기

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

지원되는 인증 방법으로 연결

SQL Server는 다음과 같은 몇 가지 Microsoft Entra 인증 방법을 지원합니다.

  • 기본값
  • 사용자 이름 및 암호
  • 통합:
  • 다단계 인증을 사용한 범용
  • 서비스 주체
  • 관리 ID
  • 액세스 토큰

이러한 방법 중 하나를 사용하여 SQL Server 인스턴스에 연결하세요. 자세한 내용은 SQL Server에 대한 Microsoft Entra 인증을 참조 하세요.

SSMS를 사용하는 인증 예제

참고 항목

Microsoft Entra ID는 Azure AD(Azure Active Directory)의 새 이름이지만 기존 환경의 중단을 방지하기 위해 Azure AD는 UI 필드, 연결 공급자, 오류 코드 및 cmdlet과 같은 일부 하드 코드된 요소에서 여전히 다시 기본. 이 문서에서는 두 이름을 서로 교환할 수 있습니다.

다음은 인증 방법 Azure Active Directory - 유니버설 with MFA를 사용하는 SSMS(SQL Server Management Studio) 연결 페이지의 스냅샷.

Screenshot SSMS showing the Connect to Server window.

인증 프로세스 중에 사용자가 만들어진 데이터베이스는 SSMS에 명시적으로 표시되어야 합니다. 옵션 커넥트ion 속성 > 커넥트 데이터베이스로 확장합니다database_name.>

자세한 내용은 Microsoft Entra 다단계 인증 사용을 참조하세요.

Azure SQL에 대한 Microsoft Entra 인증을 지원하는 SQL Server 도구는 SQL Server 2022(16.x)에도 지원됩니다.

Microsoft Entra ID 매개 변수가 저장되는 위치

Warning

Microsoft Entra ID 매개 변수는 Azure Arc 에이전트에 의해 구성되며 수동으로 다시 구성해서는 안 됩니다.

Linux에서 Microsoft Entra ID 매개 변수는 에 mssql-conf저장됩니다. Linux 의 구성 옵션에 대한 자세한 내용은 mssql-conf 도구를 사용하여 Linux에서 SQL Server 구성을 참조하세요.

알려진 문제

  • 인증서 업데이트는 전파되지 않습니다.
    • MICROSOFT Entra 인증이 SQL Server에 대해 구성되면 SQL Server에서 인증서 업데이트 - Azure Arc 리소스의 Microsoft Entra ID 및 Purview 창이 완전히 전파되지 않을 수 있습니다. 이로 인해 저장이 성공했음에도 이전 값이 계속 표시됩니다. 인증서를 갱신하려면 다음을 수행합니다.

      • 관리자 제거를 선택합니다.
      • 저장을 선택합니다.
      • 관리 설정을 선택하고 새 인증서로 Microsoft Entra 인증을 다시 구성합니다.
      • 저장을 선택합니다.

참고 항목