Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz tworzyć i używać serwerowych jednostek zabezpieczeń z Microsoft Entra ID (dawniej Azure Active Directory) jako loginy w wirtualnej master bazie danych dedykowanej puli SQL Azure Synapse Analytics.
Uwaga
Podmioty zabezpieczeń serwera Microsoft Entra są obecnie dostępne w wersji zapoznawczej dla Azure Synapse Analytics.
Istnieje kilka korzyści z korzystania z głównych nazw zabezpieczeń serwera Microsoft Entra z dedykowaną pulą SQL:
- Obsługa ról serwera w zarządzaniu uprawnieniami.
- Wspieraj wielu użytkowników Microsoft Entra poprzez specjalne role dla Azure Synapse Analytics, takie jak role
loginmanageridbmanager. - Równorzędność funkcjonalna między logowaniami SQL i logowaniami Microsoft Entra.
- Zwiększ obsługę ulepszeń funkcjonalnych, na przykład poprzez wykorzystanie uwierzytelniania wyłącznie Microsoft Entra. Uwierzytelnianie tylko za pomocą Microsoft Entra pozwala wyłączyć uwierzytelnianie SQL dla administratora serwera SQL, loginów SQL oraz użytkowników.
- Użyj identyfikatorów logowania jednostki usługi Microsoft Entra z rolami specjalnymi, aby w pełni zautomatyzować tworzenie i konserwację użytkowników i baz danych za pomocą aplikacji Firmy Microsoft Entra.
Więcej informacji można znaleźć w Microsoft Entra authentication for Azure Synapse Analytics.
Permissions
Aby używać lub tworzyć identyfikatory logowania Microsoft Entra w wirtualnej bazie danych master, potrzebujesz następujących uprawnień:
- Uprawnienia administratora Microsoft Entra lub członkostwo w roli serwera
loginmanager. Tylko administrator Microsoft Entra może utworzyć pierwszy login Microsoft Entra. - Musi być członkiem Microsoft Entra ID w tym samym katalogu używanym przez Azure Synapse Analytics.
Domyślnie nowo utworzonym loginom Microsoft Entra w bazie danych master jest przyznawane uprawnienie VIEW ANY DATABASE.
Składnia podmiotów zabezpieczeń Microsoft Entra
Użyj poniższej składni, aby utworzyć serwer Microsoft Entra i podmioty zabezpieczeń bazy danych oraz zarządzać nimi.
Utwórz login
Ta składnia tworzy login na poziomie serwera na podstawie tożsamości Microsoft Entra. Tylko administrator Microsoft Entra może wykonać to polecenie w wirtualnej master bazie danych.
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
login_name określa podmiot zabezpieczeń Microsoft Entra, którym jest użytkownik, grupa lub aplikacja Microsoft Entra.
Aby uzyskać więcej informacji, zobacz CREATE LOGIN (Transact-SQL).
Utwórz użytkownika na podstawie loginu
Poniższa składnia języka T-SQL tworzy podmiot zabezpieczeń Microsoft Entra na poziomie bazy danych, skojarzony z logowaniem Microsoft Entra w wirtualnej bazie danych master. Podobnie jak w przypadku składni tworzenia użytkownika Microsoft Entra zawartego w bazie danych, jedyna różnica polega na określeniu FROM LOGIN [login_name], a nie FROM EXTERNAL PROVIDER.
Aby utworzyć użytkownika Entra firmy Microsoft na podstawie nazwy logowania firmy Microsoft Entra, użyj następującej składni.
CREATE USER [user_name] FROM LOGIN [login_name]
Możesz użyć kolumny SID w sys.database_principals, aby odróżnić użytkownika autonomicznej bazy danych Microsoft Entra od użytkownika Microsoft Entra utworzonego na podstawie loginu. W przypadku użytkownika autonomicznej bazy danych element SID jest ciągiem binarnym o długości 16. W przypadku użytkownika opartego na logowaniu parametr SID ma długość 18 z sufiksem AADE .
Uwaga
Dodanie AADE tego sufiksu do SID to sposób, w jaki rozpoznajesz użytkownika Microsoft Entra jako utworzonego na podstawie loginu. Jednak oznacza to również, że SID-y logowania i jego użytkowników nie pokrywają się między sys.server_principals a sys.database_principals. Aby powiązać użytkownika z jego loginem, najpierw musisz usunąć sufiks AADE.
Aby zrozumieć różnicę pojęciową między użytkownikami bazującymi na loginach a użytkownikami autonomicznej bazy danych, zobacz użytkownicy autonomicznej bazy danych.
Aby uzyskać więcej informacji na temat całej składni tworzenia użytkownika, zobacz CREATE USER (Transact-SQL).
Wyłącz lub włącz login, używając ALTER LOGIN
Użyj składni DDL ALTER LOGIN (Transact-SQL), aby włączyć lub wyłączyć login Microsoft Entra w dedykowanej puli SQL usługi Azure Synapse Analytics.
ALTER LOGIN [login_name] DISABLE
Po wyłączeniu logowania podmiot zabezpieczeń serwera nie może się już połączyć. Wyłączenie logowania uniemożliwia również łączenie się z odpowiednimi bazami danych wszystkim podmiotom zabezpieczeń bazy danych (użytkownikom), które utworzono z tego logowania.
Uwaga
ALTER LOGIN login_name DISABLEnie może wpływać na użytkowników autonomicznych baz danych, ponieważ nie są powiązani z logowaniami.ALTER LOGIN login_name DISABLEnie jest obsługiwany dla grup Microsoft Entra.Wyłączony indywidualny login nie może należeć do użytkownika będącego częścią grupy logowania utworzonej w bazie danych
master(na przykład grupy administratorów Microsoft Entra).Aby zmiany
ENABLElubDISABLEweszły w życie natychmiast, wyczyść pamięć podręczną uwierzytelniania i pamięć podręcznąTokenAndPermUserStore, używając następujących poleceń T-SQL:DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Ograniczenia i uwagi
- Administrator serwera SQL nie może tworzyć logowań Microsoft Entra ani użytkowników w żadnej bazie danych.
- Dedykowane pule SQL w przestrzeniach roboczych Azure Synapse Analytics nie używają logicznych serwerów SQL.
- Administrator SQL lub użytkownik SQL nie może wykonać następujących operacji firmy 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]
- Personifikacja głównych podmiotów serwera Microsoft Entra (logowań) nie jest obsługiwana dla Azure Synapse Analytics:
- EXECUTE AS— Klauzula (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Obsługiwana jest personifikacja podmiotów zabezpieczeń bazy danych Microsoft Entra (użytkowników) w bazie użytkowników.
- Loginy Microsoft Entra nie mogą pokrywać się z loginem administratora Microsoft Entra. Administrator firmy Microsoft Entra ma pierwszeństwo przed każdym logowaniem. Jeśli konto Microsoft Entra ma już dostęp do serwera jako administrator firmy Microsoft Entra, indywidualnie lub w ramach grupy, żadne dane logowania utworzone dla tego konta nie będą miały żadnego wpływu. Jednak tworzenie loginu nie jest blokowane za pomocą języka T-SQL. Po uwierzytelnieniu konta na serwerze login ma skuteczne uprawnienia administratora Microsoft Entra, a nie nowo utworzonego loginu.
- Zmiana uprawnień na konkretnym obiekcie logowania Microsoft Entra nie jest obsługiwana:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Gdy zmieniasz uprawnienia dla logowania do Microsoft Entra, domyślnie zmiany wchodzą w życie dopiero następnym razem, gdy logowanie połączy się z dedykowaną pulą SQL. Wszelkie istniejące otwarte połączenia z tym loginem pozostają bez zmian. Aby wymusić natychmiastowe wprowadzenie zmian uprawnień, możesz ręcznie wyczyścić uwierzytelnianie i tokenAndPermUserStore, zgodnie z opisem we wcześniejszej sekcji wyłącz lub włącz logowanie przy użyciu polecenia ALTER LOGIN. To zachowanie ma zastosowanie również podczas wprowadzania zmian członkostwa w roli serwera za pomocą FUNKCJI ALTER SERVER ROLE.
- W programie SQL Server Management Studio polecenie skryptowe do utworzenia użytkownika nie sprawdza, czy istnieje już logowanie Microsoft Entra w
masterpod tą samą nazwą. Zawsze generuje on język T-SQL dla zawartej bazy danych Microsoft Entra użytkownika. - Jeśli próbujesz utworzyć login lub użytkownika na podstawie nazwy głównej usługi z nieunikatową nazwą wyświetlaną, może wystąpić błąd. Więcej informacji na temat łagodzenia tego błędu można znaleźć w sekcji Rozważania dotyczące nazw.
- Użytkownicy baz danych utworzoni za pomocą logowania Microsoft Entra mogą doświadczać opóźnień przy otrzymaniu ról i uprawnień. Jeśli napotkasz ten problem, użyj następujących poleceń:
- Usuń użytkownika z bazy danych użytkownika.
- Wykonaj
DBCC FREESYSTEMCACHE('TokenAndPermUserStore'), aby wyczyścić bufory zabezpieczeń w bazie danych. - Wykonaj polecenie
DBCC FLUSHAUTHCACHE, aby wyczyścić pamięć podręczną kontekstu uwierzytelniania federacyjnego. - Utwórz użytkownika na podstawie nazwy logowania.
Ograniczenia podmiotu zabezpieczeń serwera dla grupy Microsoft Entra
Następujące ograniczenia dotyczą grupowych loginów Microsoft Entra w Azure Synapse Analytics:
- Role serwera nie są obsługiwane dla grup Microsoft Entra.
- Jeśli administrator SQL to grupa Microsoft Entra, użytkownicy tej grupy napotykają pewne ograniczenia podczas łączenia się. Każdy użytkownik Microsoft Entra nie jest indywidualnie wymieniony w
sys.server_principalstabeli. To ograniczenie ma różne konsekwencje, w tym wywołania doSUSER_SID, które zwracająNULL. - Logowania użytkowników Microsoft Entra, które są częścią grupowych logowań Microsoft Entra, nie są tworzone niejawnie. Ci użytkownicy nie mają domyślnego schematu i nie mogą wykonywać operacji, na przykład
CREATE SCHEMAdopóki nie utworzysz logowania dla użytkownika Microsoft Entra lub nie przypiszesz domyślnego schematu do grupy. - Nie możesz ustawić grupy Microsoft Entra jako właściciela bazy danych.
ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]kończy się niepowodzeniem z komunikatem o błędzie:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.