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.
Dotyczy:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (tylko dedykowane pule SQL)
Teraz można tworzyć i wykorzystywać jednostki serwera z Microsoft Entra ID (dawniej Azure Active Directory), które są identyfikatorami logowania w wirtualnej master bazie danych Azure SQL Database i Azure SQL Managed Instance.
Uwaga
Podmioty zabezpieczeń serwera Microsoft Entra (loginy) są już ogólnie dostępne w Azure SQL Database, Azure SQL Managed Instance oraz SQL Server 2022 i nowszych wersjach. Jednostki główne serwera Microsoft Entra są obecnie dostępne w publicznej wersji zapoznawczej w usłudze Azure Synapse Analytics.
Istnieje kilka korzyści z używania podmiotów zabezpieczeń serwera Firmy Microsoft z zasobem usługi Azure SQL:
- Obsługa ról serwera usługi Azure SQL Database na potrzeby zarządzania uprawnieniami.
- Obsługa wielu użytkowników firmy Microsoft Entra z rolami specjalnymi dla usługi SQL Database, takich jak
loginmanageridbmanager. - Równorzędność funkcjonalna między logowaniami SQL i logowaniami Microsoft Entra.
- Zwiększ obsługę usprawnień funkcjonalnych, takich jak wykorzystanie uwierzytelniania wyłącznie za pomocą usługi Microsoft Entra. Uwierzytelnianie wyłącznie za pomocą usługi Microsoft Entra umożliwia wyłączenie uwierzytelniania SQL, w tym administratora serwera SQL, loginów SQL i użytkowników.
- Umożliwia jednostkom firmy Microsoft Entra obsługę replik geograficznych. Podmioty zabezpieczeń firmy Microsoft mogą łączyć się z repliką geograficzną bazy danych użytkownika z uprawnieniami tylko do odczytu i odmowy dostępu do serwera podstawowego.
- 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.
Aby uzyskać więcej informacji na temat uwierzytelniania entra firmy Microsoft w usłudze Azure SQL, zobacz Używanie uwierzytelniania entra firmy Microsoft.
Uprawnienia
Następujące uprawnienia są wymagane do korzystania lub tworzenia logowań firmy Microsoft w wirtualnej master bazie danych.
- Uprawnienia administratora Microsoft Entra lub członkostwo w roli serwera
loginmanager. Pierwszy identyfikator logowania firmy Microsoft Entra można utworzyć tylko przez administratora firmy Microsoft Entra. - Musi być członkiem identyfikatora Entra firmy Microsoft w tym samym katalogu używanym dla usługi Azure SQL Database.
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 firmy 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 sufiksu AADE do identyfikatora SID pozwala rozpoznać, że użytkownik Microsoft Entra został utworzony na podstawie logowania. Oznacza to jednak również, że identyfikatory SID dla loginu i jego użytkowników nie są zgodne między sys.server_principals a sys.database_principals. Aby powiązać użytkownika z jego loginem, należy najpierw 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łączanie lub włączanie logowania przy użyciu polecenia ALTER LOGIN
Składnia DDL ALTER LOGIN (Transact-SQL) służy do włączania lub wyłączania logowania usługi Microsoft Entra w usłudze Azure SQL Database.
ALTER LOGIN [login_name] DISABLE
Gdy logowanie jest wyłączone, połączenia nie są już dozwolone przy użyciu tej jednostki serwera. Powoduje to również wyłączenie wszystkich podmiotów zabezpieczeń w bazie danych (użytkowników) utworzonych z tego identyfikatora logowania, uniemożliwiając im łączenie się z przypisanymi im bazami danych.
Uwaga
ALTER LOGIN login_name DISABLEnie wpłynie na użytkowników autonomicznej bazy danych, ponieważ nie są oni skojarzeni z logowaniami.ALTER LOGIN login_name DISABLEnie jest obsługiwany dla grup Microsoft Entra.Indywidualne wyłączone logowanie nie może należeć do użytkownika, który jest częścią grupy logowania utworzonej
masterw bazie danych (na przykład grupy administracyjnej firmy Microsoft Entra).DISABLEENABLEAby zmiany zaczęły obowiązywać natychmiast, pamięć podręczna uwierzytelniania i pamięć podręczna TokenAndPermUserStore muszą zostać wyczyszczone przy użyciu poleceń języka T-SQL.DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Role podmiotów zabezpieczeń Microsoft Entra
Role specjalne dla usługi SQL Database można przypisać do użytkowników w wirtualnej master bazie danych dla podmiotów zabezpieczeń firmy Microsoft, w tym dbmanager i loginmanager.
Role serwera usługi Azure SQL Database można przypisać do logowań w wirtualnej master bazie danych.
Aby zapoznać się z samouczkiem dotyczącym sposobu udzielania tych ról, zobacz Samouczek: tworzenie i używanie identyfikatorów logowania do serwera Microsoft Entra.
Ograniczenia i uwagi
- Administrator serwera SQL nie może tworzyć logowań Microsoft Entra ani użytkowników w żadnej bazie danych.
- 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]
- Podszywanie się pod podmioty zabezpieczeń serwera Microsoft Entra (logowania) nie jest obsługiwane w usłudze Azure SQL Database i Azure Synapse Analytics. Jest on obsługiwany w przypadku usługi SQL Managed Instance:
- EXECUTE AS— Klauzula (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Personifikacja podmiotów zabezpieczeń bazy danych firmy Microsoft Entra (użytkowników) w bazie danych użytkownika jest obsługiwana we wszystkich produktach Microsoft SQL.
- 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 będzie miał efektywne uprawnienia administratora Microsoft Entra, a nie nowo utworzonego loginu.
- Zmiana uprawnień dla określonego obiektu logowania entra firmy Microsoft nie jest obsługiwana:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Gdy zmienisz uprawnienia logowania do usługi Microsoft Entra, zmiany zostaną zastosowane dopiero przy następnym połączeniu logowania z usługą Azure SQL Database. 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. Aby uzyskać więcej informacji na temat łagodzenia skutków tego błędu, zobacz Identyfikatory logowania Microsoft Entra i użytkownicy z nieunikatowymi nazwami wyświetlanymi.
- W usługach Azure SQL Database i Azure Synapse Analytics użytkownicy bazy danych utworzeni przy użyciu logowania Microsoft Entra mogą doświadczyć opóźnień podczas przyznawania ról i uprawnień. Jeśli wystąpi to, użyj następujących poleceń, aby rozwiązać ten problem:
- 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
Poniżej przedstawiono znane ograniczenia dotyczące logowań Microsoft Entra grup w Azure SQL Database i Azure Synapse Analytics:
- Role serwera usługi Azure SQL Database nie są obsługiwane dla grup Microsoft Entra.
- Jeśli administrator SQL jest grupą Microsoft Entra, istnieją pewne ograniczenia, gdy użytkownicy tej grupy nawiązują połączenie. Każdy użytkownik firmy Microsoft Entra indywidualnie nie jest częścią
sys.server_principalstabeli. Ma to różne konsekwencje, w tym wywołania doSUSER_SIDzwracająceNULL. - Identyfikatory logowania użytkowników firmy Microsoft Entra, które są częścią identyfikatorów logowania grupy Entra firmy Microsoft, również nie są tworzone niejawnie, co oznacza, że nie będą miały domyślnego schematu i nie będą mogły wykonywać operacji, takich jak
CREATE SCHEMAdo momentu utworzenia logowania użytkownika Microsoft Entra lub do grupy zostanie przypisany domyślny schemat. - Zmiana własności bazy danych na grupę Firmy Microsoft Entra jako właściciela bazy danych nie jest obsługiwana.
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.