Podmioty zabezpieczeń serwera Microsoft Entra
Dotyczy: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics (tylko dedykowane pule SQL)
Teraz możesz tworzyć podmioty zabezpieczeń serwera i korzystać z nich na podstawie identyfikatora entra firmy Microsoft (dawniej Azure Active Directory), które są identyfikatorami logowania w wirtualnej master
bazie danych usługi Azure SQL Database (wersja zapoznawcza) i wystąpieniu zarządzanym usługi Azure SQL.
Uwaga
Podmioty zabezpieczeń serwera Microsoft Entra (identyfikatory logowania) są obecnie dostępne w publicznej wersji zapoznawczej dla usług Azure SQL Database i Azure Synapse Analytics. Identyfikatory logowania entra firmy Microsoft są ogólnie dostępne dla usługi Azure SQL Managed Instance i programu SQL Server 2022.
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
loginmanager
idbmanager
. - Równoważność funkcjonalna między identyfikatorami logowania SQL i identyfikatorami logowania firmy Microsoft Entra.
- Zwiększ obsługę ulepszeń funkcjonalnych, takich jak korzystanie z uwierzytelniania tylko firmy Microsoft. Uwierzytelnianie tylko w usłudze Microsoft Entra umożliwia wyłączenie uwierzytelniania SQL, w tym administratora programu SQL Server, identyfikatorów logowania 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 firmy Microsoft Entra lub członkostwo w
loginmanager
roli serwera. 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 utworzone identyfikatory logowania microsoft Entra w master
bazie danych mają uprawnienie WYŚWIETL DOWOLNĄ BAZĘ DANYCH .
Składnia podmiotów zabezpieczeń firmy Microsoft
Użyj poniższej składni, aby utworzyć serwer Microsoft Entra i podmioty zabezpieczeń bazy danych oraz zarządzać nimi.
Tworzenie identyfikatora logowania
Ta składnia tworzy identyfikator logowania na poziomie serwera na podstawie tożsamości firmy 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ń firmy Microsoft, który jest użytkownikiem, grupą lub aplikacją firmy Microsoft Entra.
Aby uzyskać więcej informacji, zobacz CREATE LOGIN (Transact-SQL).
Tworzenie użytkownika na podstawie identyfikatora logowania
Poniższa składnia języka T-SQL tworzy podmiot zabezpieczeń firmy Microsoft entra na poziomie bazy danych zamapowany na nazwę logowania firmy Microsoft Entra w wirtualnej master
bazie danych. Podobnie jak składnia tworzenia bazy danych zawierała użytkownika Firmy Microsoft Entra, jedyną różnicą jest określenie 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
z sys.database_principals , aby odróżnić użytkownika zawartej bazy danych firmy Microsoft i użytkownika microsoft Entra utworzonego na podstawie nazwy logowania. W przypadku użytkownika SID
zawartej bazy danych parametr 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
Dołączanie sufiksu AADE
do identyfikatora SID to sposób identyfikowania użytkownika Entra firmy Microsoft podczas tworzenia na podstawie identyfikatora logowania. Oznacza to jednak również, że identyfikatory SI dla identyfikatora logowania i jego użytkowników nie są zgodne z wartościami sys.server_principals
i sys.database_principals
. Aby skorelować użytkownika z powrotem z jego identyfikatorem AADE
logowania, należy najpierw usunąć sufiks.
Aby zrozumieć różnicę koncepcyjną między użytkownikami opartymi na logowaniach i użytkownikami zawartej bazy danych, zobacz zawarte użytkowników 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. Spowoduje to również wyłączenie wszystkich podmiotów zabezpieczeń bazy danych (użytkowników) utworzonych na podstawie tego identyfikatora logowania w celu nawiązania połączenia z odpowiednimi bazami danych.
Uwaga
ALTER LOGIN login_name DISABLE
Nie wpłynie to na użytkowników zawartej bazy danych, ponieważ nie są one skojarzone z identyfikatorami logowania.ALTER LOGIN login_name DISABLE
nie jest obsługiwany w przypadku grup firmy Microsoft Entra.Indywidualne wyłączone logowanie nie może należeć do użytkownika, który jest częścią grupy logowania utworzonej
master
w bazie danych (na przykład grupy administracyjnej firmy Microsoft Entra).DISABLE
ENABLE
Aby 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 dla podmiotów zabezpieczeń firmy Microsoft
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 identyfikatorów logowania 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 programu SQL Server nie może utworzyć identyfikatorów logowania firmy Microsoft ani użytkowników w żadnych bazach 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 PROVIDER
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
EXECUTE AS USER [bob@contoso.com]
ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- Personifikacja podmiotów zabezpieczeń serwera Entra firmy Microsoft (identyfikatorów logowania) nie jest obsługiwana w przypadku usług 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.
- Identyfikatory logowania firmy Microsoft Entra nie mogą nakładać się na administratora firmy 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 identyfikatora logowania nie jest blokowane za pośrednictwem języka T-SQL. Po uwierzytelnieniu konta na serwerze logowanie będzie miało obowiązujące uprawnienia administratora firmy Microsoft Entra, a nie nowo utworzonego identyfikatora logowania.
- 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. Nie ma to wpływu na istniejące otwarte połączenia z identyfikatorem logowania. 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 i usłudze Azure Data Studio polecenie skryptowe służące do utworzenia użytkownika nie sprawdza, czy istnieje już identyfikator logowania firmy
master
Microsoft Entra o tej samej nazwie. Zawsze generuje on język T-SQL dla zawartej bazy danych Microsoft Entra użytkownika. - Jeśli próbujesz utworzyć identyfikator logowania lub użytkownika z jednostki usługi z inną nazwą wyświetlaną, może wystąpić błąd. Aby uzyskać więcej informacji na temat ograniczania tego błędu, zobacz Microsoft Entra logins and users with nonunique display names (Identyfikatory logowania i użytkownicy firmy Microsoft z nazwami wyświetlanymi bez nazw).
Ograniczenia podmiotu zabezpieczeń serwera grupy firmy Microsoft
W przypadku logowania firmy Microsoft Entra w publicznej wersji zapoznawczej usług Azure SQL Database i Azure Synapse Analytics znane są następujące ograniczenia:
- Role serwera usługi Azure SQL Database nie są obsługiwane w przypadku grup firmy 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_principals
tabeli. Ma to różne konsekwencje, w tym wywołania powrotuSUSER_SID
NULL
. - 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 SCHEMA
do 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.