Microsoft Entra ID(구 Azure Active Directory)에서 서버 프린시펄을 생성하고 사용할 수 있으며, Azure Synapse Analytics 전용 SQL 풀의 가상 master 데이터베이스에서 로그인으로 사용할 수 있습니다.
참고
Microsoft Entra server principals는 현재 Azure Synapse Analytics에서 미리 보기 상태입니다.
Microsoft Entra 서버 프린시펄과 전용 SQL 풀을 사용하는 데는 여러 가지 장점이 있습니다:
- 권한 관리를 위해 서버 역할을 지원합니다.
- Azure Synapse Analytics용 특별한 역할(예:
loginmanager및dbmanager역할)을 가진 여러 Microsoft Entra 사용자를 지원합니다. - SQL 로그인과 Microsoft Entra 로그인 간의 기능 패리티
- Microsoft Entra 전용 인증 사용과 같은 기능 개선을 위한 지원을 확대하세요. Microsoft Entra 전용 인증을 사용하면 SQL 서버 관리자, SQL 로그인 및 사용자를 포함하는 SQL 인증을 비활성화할 수 있습니다.
- 특별한 역할 권한을 보유하 Microsoft Entra 서비스 주체 로그인을 사용하여 Microsoft Entra 애플리케이션로 사용자 및 데이터베이스 만들기 완전히 자동화하기
자세한 내용은 Microsoft Entra authentication for Azure Synapse Analytics를 참조하세요.
Permissions
가상 master 데이터베이스에서 Microsoft Entra 로그인을 사용하거나 생성하려면 다음과 같은 권한이 필요합니다:
- Microsoft Entra 관리자 권한 또는
loginmanager서버 역할의 멤버 자격. 첫 번째 Microsoft Entra 로그인은 Microsoft Entra 관리자만이 생성할 수 있습니다. - Azure Synapse Analytics에서 사용하는 동일한 디렉터리 내에서 Microsoft Entra ID의 멤버여야 합니다.
기본적으로 master 데이터베이스에서 새로 생성된 Microsoft Entra 로그인에 부여된 표준 권한은 VIEW ANY DATABASE입니다.
Microsoft Entra 보안 주체 구문
다음 구문을 사용해 Microsoft Entra 서버 및 데이터베이스 보안 주체를 만들고 관리하세요.
로그인 만들기
이 구문은 Microsoft Entra ID를 기반으로 서버 수준 로그인을 만듭니다. 가상 데이터베이스에서 master 이 명령어를 실행할 수 있는 사람은 오직 Microsoft Entra 관리자뿐입니다.
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]
SID의 열을 사용하여 Microsoft Entra 포함 데이터베이스 사용자와 로그인에서 생성된 Microsoft Entra 사용자를 구분할 수 있습니다. 포함된 데이터베이스 사용자의 경우 SID(은)는 길이가 16인 이진 문자열입니다. 로그인 기반 사용자의 경우 SID의 접미사는 AADE(이)며, 길이는 18 입니다.
참고
SID에 AADE 접미사를 추가하는 것이 Microsoft Entra 사용자가 로그인에서 생성된 것으로 식별하는 방법입니다. 하지만 이는 로그인과 해당 사용자의 SID가 sys.database_principals와 sys.server_principals 사이에서 일치하지 않는다는 의미이기도 합니다. 사용자를 해당 로그인과 다시 연결하려면 먼저 AADE 접미사를 제거해야 합니다.
로그인 기반 사용자와 포함된 데이터베이스 사용자 간의 개념적 차이를 이해하려면 포함된 데이터베이스 사용자를 참조 하세요.
CREATE USER 구문의 전체 내용에 대한 자세한 내용은 CREATE USER (Transact-SQL)를 참조하세요.
ALTER LOGIN을 사용하여 로그인을 비활성화하거나 활성화하세요
ALTER LOGIN (Transact-SQL) DDL 문법을 사용하여 Azure Synapse Analytics 전용 SQL 풀에서 Microsoft Entra 로그인을 활성화하거나 비활성화합니다.
ALTER LOGIN [login_name] DISABLE
로그인을 비활성화하면 서버 프린시펄이 더 이상 연결할 수 없습니다. 로그인 비활성화는 해당 로그인에서 생성한 모든 데이터베이스 주체(사용자)가 각자의 데이터베이스에 연결하는 것도 막습니다.
참고
ALTER LOGIN login_name DISABLE로그인과 연관되지 않기 때문에 포함된 데이터베이스 사용자에는 영향을 주지 않습니다.ALTER LOGIN login_name DISABLE은(는) Microsoft Entra 그룹에 대해 지원되지 않습니다.개별 비활성화된 로그인은
master데이터베이스에서 생성한 로그인 그룹(예: Microsoft Entra 관리자 그룹)에 속한 사용자의 로그인일 수 없습니다.ENABLE또는DISABLE변경 사항을 즉시 적용하려면 다음 T-SQL 명령어를 사용하여 인증 캐시와TokenAndPermUserStore캐시를 지우세요:DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
제한 사항 및 설명
- SQL 서버 관리자는 모든 데이터베이스에서 Microsoft Entra 로그인 또는 사용자를 만들 수 없습니다.
- Azure Synapse Analytics 작업 공간의 전용 SQL 풀은 논리 SQL 서버를 사용하지 않습니다.
- SQL 관리자 또는 SQL 사용자는 다음 Microsoft Entra 작업을 실행할 수 없습니다.
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDERCREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDEREXECUTE AS USER [bob@contoso.com]ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- Microsoft Entra 서버 주체(로그인) 가장은 Azure Synapse Analytics에서 지원되지 않습니다:
- EXECUTE AS 절(Transact-SQL)
- EXECUTE AS(Transact-SQL)
- 사용자 데이터베이스 내에서 Microsoft Entra 데이터베이스 주체(사용자) 가장이 지원됩니다.
- 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 로그인 권한을 변경하면, 기본적으로 변경 사항은 로그인이 다음번에 전용 SQL 풀에 연결할 때만 적용됩니다. 로그인과 함께 열려 있는 기존 연결은 영향을 받지 않습니다. 권한 변경을 강제로 즉시 적용하려면 이전에 설명한 대로 ALTER LOGIN을 사용하여 로그인을 사용하지 않도록 설정하거나 사용하도록 설정하여 인증 및 TokenAndPermUserStore를 수동으로 지울 수 있습니다. 이 동작은 ALTER SERVER ROLE을 사용하여 서버 역할 멤버 자격을 변경할 때도 적용됩니다.
- SQL Server Management Studio에서 사용자를 만드는 스크립팅 명령은 동일한 이름의 Microsoft Entra 로그인
master이 이미 있는지 확인하지 않습니다. 포함된 데이터베이스 Microsoft Entra 사용자에 대한 T-SQL을 항상 생성합니다. - 특수 표시 이름이 아닌 서비스 주체에서 로그인 또는 사용자를 만들려는 경우 오류가 발생할 수 있습니다. 이 오류를 완화하는 방법에 대한 자세한 내용은 이름 관련 고려 사항을 참조하세요.
- Microsoft Entra 로그인으로 생성된 데이터베이스 사용자는 역할과 권한 부여에 지연이 발생할 수 있습니다. 이 문제가 발생하면 다음 명령어를 사용하세요:
- 사용자 데이터베이스에서 사용자를 삭제합니다.
- 데이터베이스에서 보안 캐시를 지우려면 실행
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')합니다. - 페더레이션 인증 컨텍스트 캐시를 지우려면 실행
DBCC FLUSHAUTHCACHE합니다. - 로그인에 따라 사용자를 만듭니다.
Microsoft Entra 그룹 서버 주체 제한 사항
Azure Synapse Analytics에서 Microsoft Entra 그룹 로그인에 적용되는 제한 사항은 다음과 같습니다:
- 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.