Samouczek: konfigurowanie uwierzytelniania w usłudze Microsoft Entra dla programu SQL Server
Dotyczy: SQL Server 2022 (16.x)
W tym artykule opisano krok po kroku proces konfigurowania uwierzytelniania za pomocą identyfikatora Entra firmy Microsoft i pokazano, jak używać różnych metod uwierzytelniania firmy Microsoft Entra.
Notatka
microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Tworzenie i rejestrowanie aplikacji Firmy Microsoft Entra
- Udzielanie uprawnień do aplikacji Microsoft Entra
- Tworzenie i przypisywanie certyfikatu
- Konfigurowanie uwierzytelniania entra firmy Microsoft dla programu SQL Server za pośrednictwem witryny Azure Portal
- Twórz loginy i użytkowników
- Nawiązywanie połączenia przy użyciu obsługiwanej metody uwierzytelniania
Warunki wstępne
Fizyczny lub wirtualny system Windows Server w środowisku lokalnym z instancją programu SQL Server 2022 (16.x).
W przypadku programu SQL Server na maszynach wirtualnych platformy Azure zapoznaj się z artykułem Microsoft Entra authentication for SQL Server 2022 on Azure VMs.
Serwer i wystąpienie obsługiwane przez usługę Azure Arc. Aby uzyskać więcej informacji, zobacz Połącz swój serwer SQL z Azure Arc.
Dostęp do identyfikatora Entra firmy Microsoft jest dostępny do celów uwierzytelniania. Aby uzyskać więcej informacji, zobacz Microsoft Entra authentication for SQL Server.
program SQL Server Management Studio (SSMS) w wersji 18.0 lub nowszej jest zainstalowany na komputerze klienckim. Możesz też pobrać najnowszą Azure Data Studio.
Wymagania wstępne dotyczące uwierzytelniania
Notatka
Rozszerzona funkcjonalność została zaimplementowana na platformie Azure, aby umożliwić automatyczne tworzenie certyfikatu usługi Azure Key Vault i aplikacji Microsoft Entra podczas konfigurowania administratora usługi Microsoft Entra dla programu SQL Server. Aby uzyskać więcej informacji, zobacz Samouczek: Używanie automatyzacji do skonfigurowania administratora Microsoft Entra dla SQL Server.
Rejestracja aplikacji Microsoft Entra dla programu SQL Server. Zarejestrowanie wystąpienia programu SQL Server jako aplikacji Microsoft Entra umożliwia wykonywanie zapytań do Microsoft Entra ID oraz pozwala aplikacji Microsoft Entra uwierzytelniać się w imieniu wystąpienia programu SQL Server. Rejestracja aplikacji wymaga również kilku uprawnień, które są używane przez program SQL Server w przypadku niektórych zapytań.
Program SQL Server używa certyfikatu dla tego uwierzytelniania, który jest przechowywany w usłudze Azure Key Vault (AKV). Agent usługi Azure Arc pobiera certyfikat na hosta wystąpienia programu SQL Server.
Ostrzeżenie
Połączenia uwierzytelnione przez identyfikator Entra firmy Microsoft są zawsze szyfrowane. Jeśli program SQL Server korzysta z certyfikatu z podpisem własnym, należy dodać trust server cert = true
w parametrach połączenia. Połączenia uwierzytelnione w programie SQL Server i systemie Windows nie wymagają szyfrowania, ale jest to zdecydowanie zalecane.
Tworzenie i rejestrowanie aplikacji Firmy Microsoft Entra
- Przejdź do portalu Azure, wybierz pozycję Microsoft Entra ID>Rejestracje aplikacji>Nowa rejestracja.
- Określ nazwę — przykład w tym artykule używa SQLServerCTP1.
- Wybierz Obsługiwane typy kont i użyj kont w tym katalogu organizacji tylko
- Nie ustawiaj identyfikatora URI przekierowania
- Wybierz pozycję Zarejestruj
Zobacz rejestrację aplikacji poniżej:
Zezwalaj na uprawnienia aplikacji
Wybierz nowo utworzoną aplikację, a następnie z menu po lewej stronie wybierz pozycję uprawnienia API.
Wybierz pozycję Dodaj uprawnienie>Microsoft Graph>Uprawnienia aplikacji
- Sprawdź Directory.Read.All
- Wybierz pozycję Dodaj uprawnienia
Wybierz pozycję Dodaj uprawnienie>Microsoft Graph>Delegowane uprawnienia
- Sprawdź Application.Read.All
- Sprawdź Directory.AccessAsUser.All
- Sprawdź Group.Read.All
- Sprawdź User.Read.All
- Wybierz pozycję Dodaj uprawnienia
Wybierz pozycję Udziel zgody administratora
Notatka
Aby udzielić zgody administratora do powyższych uprawnień, do konta Microsoft Entra wymagane są uprawnienia roli administratora uprzywilejowanego lub wyższe uprawnienia.
Tworzenie i przypisywanie certyfikatu
Przejdź do witryny portal Azure, wybierz pozycję Skarbce kluczyi wybierz skarbiec kluczy, który chcesz użyć, lub utworzyć nowy. Wybieranie certyfikatów >Generowanie/importowanie
Dla metody tworzenia certyfikatu użyj Generate.
Dodaj nazwę certyfikatu i podmiot.
Zalecany okres ważności wynosi co najwyżej 12 miesięcy. Pozostałe wartości można pozostawić jako domyślne.
Wybierz pozycję Utwórz.
Notatka
Po utworzeniu certyfikatu może być on oznaczony jako wyłączony. Odśwież witrynę i wyświetli certyfikat jako włączony.
Przejdź do nowego certyfikatu i wybierz wiersz dla najnowszej wersji certyfikatu. Wybierz Pobierz w formacie CER, aby zapisać klucz publiczny certyfikatu.
Notatka
Nie trzeba tego robić na hoście programu SQL Server. Każdy klient, który uzyska dostęp do Portalu Azure w następnym kroku.
W witrynie Azure Portal przejdź do utworzonej powyżej rejestracji aplikacji i wybierz pozycję Certificates list
- Wybierz załaduj certyfikat.
- Wybierz klucz publiczny (plik .cer) pobrany w ostatnim kroku.
- Wybierz pozycję Dodaj.
W portalu Azure pobierz identyfikator obiektu Maszyny Azure Arc.
W obszarze zasoby usługi Azure Arc>Machineswybierz maszynę.
W overviewznajdź JSON View.
W obszarze Identityskopiuj wartość principalId.
W portalu przejdź do wystąpienia usługi Azure Key Vault, w którym jest przechowywany certyfikat, i przyznaj dostęp do zasobów usługi Azure Machine. W menu nawigacji usługi Azure Key Vault przejdź do Ustawieniai Konfiguracja dostępu. Aby uzyskać szczegółowe instrukcje dotyczące zarządzania przypisaniami ról, zapoznaj się z Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Twoje doświadczenie zależy od konfiguracji dostępu do magazynu kluczy.
Aby użyć kontroli dostępu opartej na rolach platformy Azure (zalecane):
Dodaj następujące role do zasobu.
- Użytkownik certyfikatu usługi Key Vault
- Użytkownik sekretów usługi Key Vault
Sprawdź role w tej lokalizacji:
Aby użyć polityki dostępu Vault:
Wybierz pozycję Zasady dostępu z menu nawigacji.
Wybierz pozycję Utwórz.
Dla uprawnień tajnych, wybierz Pobierz>Listę.
Dla uprawnień certyfikatu wybierz opcję Pobierz listę>.
Wybierz pozycję Dalej.
Na stronie głównej Principal wyszukaj nazwę wystąpienia Machine — Azure Arc, czyli nazwę hosta programu SQL Server.
Wybierz pozycję Przejrzyj i utwórz.
Sprawdź, czy wartość Principal>Object ID jest zgodna z identyfikatorem podmiotu zabezpieczeń tożsamości zarządzanej przypisanej do wystąpienia.
Aby potwierdzić, przejdź do strony zasobów i wybierz pozycję widok JSON w prawym górnym rogu pola Podstawowe elementy na stronie Przegląd. Pod identity znajdziesz principalId
Wybierz pozycję Utwórz.
Musisz wybrać Utwórz, aby upewnić się, że uprawnienia są stosowane. Aby upewnić się, że uprawnienia zostały zapisane, odśwież okno przeglądarki i sprawdź, czy instancja Azure Arc jest widoczna.
Konfigurowanie uwierzytelniania entra firmy Microsoft dla programu SQL Server za pośrednictwem witryny Azure Portal
Notatka
Uwierzytelnianie firmy Microsoft Entra można skonfigurować w ramach dowolnego z następujących środowisk:
Przejdź do witryny Azure Portali wybierz pozycję SQL Server — Azure Arc, a następnie wybierz wystąpienie hosta programu SQL Server.
Sprawdź stan zasobu SQL Server — Azure Arc i zobacz, czy jest połączony, przechodząc do menu Właściwości. Aby uzyskać więcej informacji, zobacz Walidacja zasobów SQL Server - Azure Arc.
Wybierz Microsoft Entra ID i Purview w sekcji Ustawienia w menu zasobów.
Wybierz Ustaw administratora, aby otworzyć okienko Microsoft Entra ID, a następnie wybierz konto, które chcesz ustawić jako login administratora dla programu SQL Server.
Wybierz certyfikat zarządzany przez klienta i Wybierz certyfikat.
Wybierz Zmień certyfikat, a następnie wybierz utworzone wcześniej wystąpienie AKV i certyfikat w nowym panelu.
Wybierz rejestracja aplikacji zarządzanej przez klienta.
Wybierz Zmień rejestrację aplikacjii wybierz utworzoną wcześniej rejestrację aplikacji.
Wybierz pozycję Zapisz. Spowoduje to wysłanie żądania do agenta serwera Arc, który konfiguruje uwierzytelnianie Microsoft Entra dla tej instancji SQL Server.
Pobranie certyfikatów i skonfigurowanie ustawień trwa kilka minut. Po ustawieniu wszystkich parametrów i wybraniu Zapisz w portalu Azure może zostać wyświetlony następujący komunikat:
SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing
. Poczekaj na potwierdzenie zapisu zSaved successfully
, zanim spróbujesz zalogować się do Microsoft Entra.Agent serwera usługi Azure Arc może aktualizować tylko po zakończeniu poprzedniej akcji. Oznacza to, że zapisanie nowej konfiguracji usługi Microsoft Entra przed zakończeniem ostatniej konfiguracji może spowodować awarię. Jeśli zostanie wyświetlony komunikat wywołanie rozszerzone nie powiodło się po wybraniu Zapisz, poczekaj 5 minut, a następnie spróbuj ponownie.
Nota
Gdy identyfikator logowania administratora firmy Microsoft Entra zostanie udzielony roli
sysadmin
, zmiana administratora microsoft Entra w witrynie Azure Portal nie spowoduje usunięcia poprzedniego identyfikatora logowania, który pozostaje jakosysadmin
. Aby usunąć login, należy usunąć go ręcznie.Zmiana administratora usługi Microsoft Entra dla instancji SQL Server odbywa się bez potrzeby ponownego uruchamiania serwera, natychmiast po zakończeniu procesu z wykorzystaniem agenta Azure Arc SQL Server. Aby nowy administrator był wyświetlany w
sys.server_principals
, należy ponownie uruchomić instancję SQL Server, do tego czasu wyświetlany jest stary administrator. Obecnego administratora Microsoft Entra można sprawdzić w portalu Azure.
Tworzenie loginów i użytkowników
Po zakończeniu operacji agenta usługi Azure Arc na hoście SQL Server, konto administratora wybrane w menu Microsoft Entra ID w portalu stanie się sysadmin
w instancji SQL Server. Zaloguj się do programu SQL Server, używając konta administratora usługi Microsoft Entra, które ma uprawnienia sysadmin
na serwerze, za pomocą klienta, takiego jak SSMS lub Azure Data Studio.
Notatka
Wszystkie połączenia z programem SQL Server, które są wykonywane z uwierzytelnianiem firmy Microsoft Entra, wymagają zaszyfrowanego połączenia. Jeśli administrator bazy danych (DBA) nie skonfigurował zaufanego certyfikatu SSL/TLS dla serwera, logowania prawdopodobnie nie powiedzą się z komunikatem Łańcuch certyfikatów został wystawiony przez urząd, który nie jest zaufany. Aby rozwiązać ten problem, skonfiguruj wystąpienie programu SQL Server tak, aby używało certyfikatu SSL/TLS zaufanego przez klienta lub wybierz certyfikat serwera zaufania we właściwościach zaawansowanych połączeń. Aby uzyskać więcej informacji, zobacz Włącz szyfrowane połączenia z silnikiem bazy danych.
Tworzenie składni logowania
Ta sama składnia tworzenia nazw logowania i użytkowników usługi Microsoft Entra w usługach Azure SQL Database i Azure SQL Managed Instance może być teraz używana w programie SQL Server.
Notatka
W programie SQL Server każde konto z uprawnieniami ALTER ANY LOGIN
lub ALTER ANY USER
może utworzyć odpowiednio identyfikatory logowania lub użytkowników usługi Microsoft Entra. Konto nie musi być logowaniem firmy Microsoft Entra.
Aby utworzyć login dla konta Microsoft Entra, wykonaj następujące polecenie T-SQL w bazie danych master
.
CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;
W przypadku użytkowników główna nazwa musi mieć format user@tenant.com
. W Microsoft Entra ID jest to nazwa główna użytkownika. W przypadku wszystkich innych typów kont, takich jak grupy lub aplikacje firmy Microsoft Entra, główna nazwa jest nazwą obiektu Microsoft Entra.
Oto kilka przykładów:
-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO
Aby wyświetlić listę logowań Microsoft Entra w bazie danych master
, wykonaj polecenie T-SQL:
SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');
Aby przyznać użytkownikowi usługi Microsoft Entra członkostwo do roli sysadmin
(na przykład admin@contoso.com
), wykonaj następujące polecenia w master
:
CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO
Procedura składowana sp_addsrvrolemember
musi zostać wykonana jako członek roli serwera sysadmin
programu SQL Server.
Tworzenie składni użytkownika
Możesz utworzyć użytkownika bazy danych z Microsoft Entra ID, albo jako użytkownika bazy danych skojarzonego z głównym serwerem lub kontem logowania, albo jako użytkownika w ramach bazy danych.
Aby utworzyć użytkownika entra firmy Microsoft na podstawie identyfikatora logowania firmy Microsoft w bazie danych programu SQL Server, użyj następującej składni:
CREATE USER [principal_name] FROM LOGIN [principal_name];
Składnia principal_name
jest taka sama jak w przypadku logowań.
Oto kilka przykładów:
-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO
Aby utworzyć użytkownika bazy danych firmy Microsoft Entra, który nie jest użytkownikiem powiązanym z logowaniem do serwera, można wykonać następującą składnię:
CREATE USER [principal name] FROM EXTERNAL PROVIDER;
Użyj nazwy grupy Entra firmy Microsoft lub nazwy aplikacji Microsoft Entra jako <principal name>
podczas tworzenia użytkownika bazy danych Microsoft Entra na podstawie grupy lub aplikacji.
Oto kilka przykładów:
-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
Aby wyświetlić listę użytkowników utworzonych w bazie danych, wykonaj następujące polecenie języka T-SQL:
SELECT * FROM sys.database_principals;
Domyślnie nowa baza danych ma uprawnienia Connect Connect. Wszystkie inne uprawnienia programu SQL Server muszą być jawnie przyznane przez autoryzowanych grantorów.
Konta gości Microsoft Entra
Składnia CREATE LOGIN
i CREATE USER
obsługuje również użytkowników-gości. Jeśli na przykład testuser@outlook.com
zostanie zaproszony do dzierżawy contoso.com
, można go dodać jako login do SQL Server, używając takiej samej składni, jak przy tworzeniu jakiegokolwiek innego użytkownika lub logowania w Microsoft Entra. Podczas tworzenia użytkowników gości i logowania gości, należy użyć adresu e-mail, z którego pochodzi konto gościa, a nie głównej nazwy użytkownika w ramach dzierżawy. W przykładach podano outlook.com
, mimo że konto jest zarejestrowane w dzierżawie contoso.com
.
Tworzenie użytkownika-gościa na podstawie istniejącego identyfikatora logowania
CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];
Utwórz użytkownika-gościa jako użytkownika objętego ograniczeniami
CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;
Nawiązywanie połączenia przy użyciu obsługiwanej metody uwierzytelniania
Program SQL Server obsługuje kilka metod uwierzytelniania firmy Microsoft Entra:
- Domyślny
- Nazwa użytkownika i hasło
- Zintegrowany
- Uniwersalne z uwierzytelnianiem wieloskładnikowymi
- Podmiot usługi
- Tożsamość zarządzana
- Token dostępu
Użyj jednej z tych metod, aby połączyć się z instancją SQL Server. Aby uzyskać więcej informacji, zobacz Microsoft Entra authentication for SQL Server.
Przykład uwierzytelniania przy użyciu programu SSMS
Notatka
Chociaż identyfikator Entra firmy Microsoft to nowa nazwa usługi Azure Active Directory (Azure AD), aby zapobiec zakłócaniu działania istniejących środowisk, usługa Azure AD nadal pozostaje w niektórych zakodowanych na stałe elementach, takich jak pola interfejsu użytkownika, dostawcy połączeń, kody błędów i polecenia cmdlet. W tym artykule dwie nazwy są wymienne.
Poniżej znajduje się migawka strony połączenia programu SQL Server Management Studio (SSMS) przy użyciu metody uwierzytelniania Azure Active Directory — Universal z MFA.
Podczas procesu uwierzytelniania baza danych, w której został utworzony użytkownik, musi być jawnie wskazana w programie SSMS. Rozwiń opcje > Właściwości połączenia > Połącz z bazą danych: database_name
.
Aby uzyskać więcej informacji, zobacz Korzystanie z wieloskładnikowego uwierzytelniania Microsoft Entra.
Narzędzia programu SQL Server, które obsługują uwierzytelnianie w usłudze Microsoft Entra dla usługi Azure SQL, są również obsługiwane dla programu SQL Server 2022 (16.x).
Lokalizacja, w której są przechowywane parametry identyfikatora entra firmy Microsoft
Ostrzeżenie
Parametry identyfikatora Entra firmy Microsoft są konfigurowane przez agenta usługi Azure Arc i nie należy ich ponownie konfigurować ręcznie.
W systemie Linux parametry identyfikatora Entra firmy Microsoft są przechowywane w mssql-conf
. Aby uzyskać więcej informacji na temat opcji konfiguracji w systemie Linux, zobacz Configure SQL Server on Linux with the mssql-conf tool.
Znane problemy
- Aktualizowanie certyfikatu nie jest propagowane:
Po skonfigurowaniu uwierzytelniania Microsoft Entra dla programu SQL Server, aktualizowanie certyfikatu w zasobie SQL Server - Azure Arc w panelu Microsoft Entra ID i Purview może nie być w pełni propagowane. Powoduje to, że zapis jest pomyślny, ale nadal jest wyświetlana stara wartość. Aby zaktualizować certyfikat, wykonaj następujące czynności:
- Wybierz pozycję Usuń administratora.
- Wybierz pozycję Zapisz.
- Wybierz pozycję Ustaw administratora i skonfiguruj ponownie uwierzytelnianie Microsoft Entra przy użyciu nowego certyfikatu.
- Wybierz pozycję Zapisz.