Microsoft Entra 서버 주체

적용 대상:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics(전용 SQL 풀만 해당)

이제 SQL Database의 가상 master 데이터베이스에 로그인하는 Microsoft Entra ID (이전의 Azure Active Directory) 서버 주체를 만들고 활용할 수 있습니다. SQL Database에 Microsoft Entra 서버 주체를 사용할 경우 다음과 같은 몇 가지 이점이 있습니다.

  • 권한 관리를 위한 Azure SQL Database 서버 역할을 지원합니다.
  • loginmanagerdbmanager 역할과 같은 SQL Database에 대한 특수 역할을 사용하여 여러 Microsoft Entra 사용자를 지원합니다.
  • SQL 로그인과 Microsoft Entra 로그인 간의 기능 패리티
  • parity 전용 인증 활용과 같은 기능 개선 지원을 늘립니다. Microsoft Entra 전용 인증을 사용하면 SQL 서버 관리자, SQL 로그인 및 사용자를 포함하는 SQL 인증을 사용하지 않도록 설정할 수 있습니다.
  • Microsoft Entra 주체가 지역 복제본을 지원하도록 합니다. Microsoft Entra 주체는 주 서버에 대한 읽기 전용 권한 및 거부 권한을 사용하여 사용자 데이터베이스의 지역 복제본에 연결할 수 있습니다.
  • 특별한 역할 권한을 보유하 Microsoft Entra 서비스 주체 로그인을 사용하여 Microsoft Entra 애플리케이션로 사용자 및 데이터베이스 만들기 완전히 자동화하기

Microsoft Entra 인증에 대한 자세한 내용은 Microsoft Entra 인증 사용을 참조하세요.

참고 항목

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

사용 권한

가상 master 데이터베이스에서 Microsoft Entra 로그인을 활용하거나 만들려면 다음 권한이 필요합니다.

  • Microsoft Entra 관리자 권한 또는 loginmanager 서버 역할의 멤버 자격. 첫 번째 Microsoft Entra 로그인은 Microsoft Entra 관리자만 만들 수 있습니다.
  • Azure SQL Database에 사용되는 동일한 디렉터리 내에서 Microsoft Entra의 멤버여야 합니다.

기본적으로 master 데이터베이스에서 새로 생성된 Microsoft Entra 로그인에 부여된 표준 권한은 VIEW ANY DATABASE입니다.

Microsoft Entra 보안 주체 구문

다음 구문을 사용하여 Microsoft Entra 서버 및 데이터베이스 보안 주체를 만들고 관리합니다.

로그인 만들기

이 구문은 Microsoft Entra ID를 기반으로 서버 수준 로그인을 만듭니다. Microsoft Entra 관리자만 가상 master 데이터베이스에서 이 명령을 실행할 수 있습니다.

CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

login_name은 Microsoft Entra 사용자, 그룹 또는 애플리케이션인 Microsoft Entra 보안 주체를 지정합니다.

자세한 내용은 CREATE LOGIN(Transact-SQL)을 참조하세요.

로그인에서 사용자 만들기

다음 T-SQL 구문은 가상 master 데이터베이스의 Microsoft Entra 로그인에 매핑된 데이터베이스 수준 Microsoft Entra 보안 주체를 만듭니다. Microsoft Entra 사용자가 포함된 데이터베이스를 만들기 위한 구문과 마찬가지로 유일한 차이점은 FROM LOGIN [login_name]이(가) 아닌 FROM EXTERNAL PROVIDER를 지정한다는 것입니다.

Microsoft Entra 로그인에서 Microsoft Entra 사용자를 만들려면 다음 구문을 사용합니다.

CREATE USER [user_name] FROM LOGIN [login_name]

sys.database_principals 열을 사용하여 SID Microsoft Entra에 포함된 데이터베이스 사용자와 로그인에서 만든 Microsoft Entra 사용자를 구분할 수 있습니다. 포함된 데이터베이스 사용자의 경우 SID(은)는 길이가 16인 이진 문자열입니다. 로그인 기반 사용자의 경우 SID의 접미사는 AADE(이)며, 길이는 18 입니다.

참고 항목

SID에 AADE 접미사를 추가하는 방법은 Microsoft Entra 사용자를 로그인에서 만든 것으로 식별하는 방법입니다. 그러나 이는 sys.server_principals(와)과 sys.database_principals의 로그인 및 사용자 SID가 일치하지 않음을 의미합니다. 사용자를 해당 로그인과 다시 연결하려면 먼저 접미사(AADE)를 제거해야 합니다.

로그인 기반 사용자와 포함된 데이터베이스 사용자 간의 개념적 차이를 이해하려면 포함된 데이터베이스 사용자를 참조 하세요.

자세한 내용은 CREATE USER(Transact-SQL)를 참조하세요.

ALTER LOGIN 구문을 사용하여 로그인 사용 안 함 또는 사용함으로 설정하기

ALTER LOGIN(Transact-SQL) DDL 구문을 사용하여 Azure SQL Database에서 Microsoft Entra 로그인을 사용하거나 사용하지 않도록 설정할 수 있습니다.

ALTER LOGIN [login_name] DISABLE 

로그인을 사용하지 않도록 설정하면 해당 서버 주체를 사용하여 연결이 더 이상 허용되지 않습니다. 또한 해당 로그인에서 만든 모든 데이터베이스 보안 주체(사용자)가 해당 데이터베이스에 연결할 수 없게 합니다.

참고 항목

  • ALTER LOGIN login_name DISABLE(은)는 포함된 데이터베이스 사용자가 로그인에 연결되지 않으므로 영향을 주지 않습니다.

  • ALTER LOGIN login_name DISABLE(은)는 Microsoft Entra 그룹에 대해 지원되지 않습니다.

  • 사용하지 않도록 설정된 개별 로그인은 master 데이터베이스에서 만든 로그인 그룹(예: Microsoft Entra 관리 그룹)의 일부인 사용자에 속할 수 없습니다.

  • DISABLE 또는 ENABLE 변경을 즉시 적용하려면 T-SQL 명령을 사용하여 인증 캐시 및 TokenAndPermUserStore 캐시를 지워야 합니다.

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS 
    

Microsoft Entra 보안 주체에 대한 역할

SQL Database에 대한 특수 역할dbmanagerloginmanager를 포함하여 Microsoft Entra 보안 주체에 대한 가상 master 데이터베이스의 사용자에게 할당할 수 있습니다.

Azure SQL Database 서버 역할은 가상 master 데이터베이스의 로그인에 할당할 수 있습니다.

이러한 역할을 부여하는 방법에 대한 자습서는 자습서: Microsoft Entra 서버 로그인 만들기 및 활용을 참조하세요.

제한 사항 및 설명

  • SQL 서버 관리자는 모든 데이터베이스에서 Microsoft Entra 로그인 또는 사용자를 만들 수 없습니다.
  • SQL 관리자 또는 SQL 사용자는 다음 Microsoft Entra 작업을 실행할 수 없습니다.
    • CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
    • EXECUTE AS USER [bob@contoso.com]
    • ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
  • Microsoft Entra 서버 주체(로그인)의 가장은 Azure SQL Database 및 Azure Synapse Analytics에서 지원되지 않습니다. SQL Managed Instance에서 지원됩니다.
  • Microsoft Entra 로그인은 Microsoft Entra 관리자와 겹칠 수 없습니다. Microsoft Entra 관리자는 모든 로그인보다 우선합니다. Microsoft Entra 계정이 Microsoft Entra 관리자로서 서버에 개별적으로 또는 그룹의 일부로 이미 액세스할 수 있는 경우 이 계정에 대해 생성된 로그인은 아무런 영향을 주지 않습니다. 로그인 만들기는 T-SQL을 통해 차단되지 않습니다. 계정이 서버에 인증되면 로그인에는 새로 만든 로그인이 아니라 Microsoft Entra 관리자의 유효 권한이 부여됩니다.
  • 특정 Microsoft Entra 로그인 개체에 대한 권한 변경은 지원되지 않습니다.
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Microsoft Entra 로그인에 대한 사용 권한을 변경하는 경우 기본적으로 변경 내용은 다음에 로그인이 Azure SQL Database에 연결할 때만 적용됩니다. 로그인과 함께 열려 있는 기존 연결은 영향을 받지 않습니다. 권한 변경을 강제로 즉시 적용하려면 이전에 설명한 대로 ALTER LOGIN을 사용하여 로그인을 사용하지 않도록 설정하거나 사용하도록 설정하여 인증 및 TokenAndPermUserStore를 수동으로 지울 수 있습니다. 이 동작은 ALTER SERVER ROLE을 사용하여 서버 역할 멤버 자격을 변경할 때도 적용됩니다.
  • SQL Server Management Studio 및 Azure Data Studio에서 사용자를 만드는 스크립팅 명령은 master에 동일한 이름의 Microsoft Entra 로그인이 이미 있는지 확인하지 않습니다. 포함된 데이터베이스 Microsoft Entra 사용자에 대한 T-SQL을 항상 생성합니다.
  • 특수 표시 이름이 아닌 서비스 주체에서 로그인 또는 사용자를 만들려는 경우 오류가 발생할 수 있습니다. 이 오류를 완화하는 방법에 대한 자세한 내용은 Microsoft Entra 로그인 및 고유하지 않은 표시 이름을 가진 사용자를 참조세요.

Microsoft Entra 그룹 서버 주체 제한 사항

Azure SQL Database 및 Azure Synapse Analytics에 대한 공개 미리 보기에서 Microsoft Entra 로그인을 사용하는 경우 다음과 같은 알려진 제한 사항이 있습니다.

  • Azure SQL Database 서버 역할은 Microsoft Entra 그룹에 지원되지 않습니다.
  • SQL 관리자가 Microsoft Entra 그룹인 경우 해당 그룹의 사용자가 연결할 때 몇 가지 제한 사항이 있습니다. 각 Microsoft Entra 사용자는 개별적으로 sys.server_principals 테이블의 일부가 아닙니다. 여기에는 NULL를 반환하는 SUSER_SID에 호출 포함하여 다양한 결과가 있습니다.
  • Microsoft Entra 그룹 로그인의 일부인 Microsoft Entra 사용자 로그인도 암시적으로 만들어지지 않으므로 기본 스키마가 없으며 Microsoft Entra 사용자에 대한 로그인이 만들어지거나 기본 스키마가 그룹에 할당될 때까지 CREATE SCHEMA(와)과 같은 작업을 수행할 수 없습니다.
  • Microsoft Entra 그룹을 데이터베이스 소유자로 변경하는 것은 지원되지 않습니다.
    • ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]은 오류 메시지와 함께 실패합니다.

      Msg 33181, Level 16, State 1, Line 4
      The new owner cannot be Azure Active Directory group.
      

다음 단계