Udostępnij za pośrednictwem


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

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.
    1. Określ nazwę — przykład w tym artykule używa SQLServerCTP1.
    2. Wybierz Obsługiwane typy kont i użyj kont w tym katalogu organizacji tylko
    3. Nie ustawiaj identyfikatora URI przekierowania
    4. Wybierz pozycję Zarejestruj

Zobacz rejestrację aplikacji poniżej:

Zrzut ekranu przedstawiający rejestrowanie aplikacji w witrynie Azure Portal.

Zezwalaj na uprawnienia aplikacji

Wybierz nowo utworzoną aplikację, a następnie z menu po lewej stronie wybierz pozycję uprawnienia API.

  1. Wybierz pozycję Dodaj uprawnienie>Microsoft Graph>Uprawnienia aplikacji

    1. Sprawdź Directory.Read.All
    2. Wybierz pozycję Dodaj uprawnienia
  2. Wybierz pozycję Dodaj uprawnienie>Microsoft Graph>Delegowane uprawnienia

    1. Sprawdź Application.Read.All
    2. Sprawdź Directory.AccessAsUser.All
    3. Sprawdź Group.Read.All
    4. Sprawdź User.Read.All
    5. Wybierz pozycję Dodaj uprawnienia
  3. Wybierz pozycję Udziel zgody administratora

Zrzut ekranu przedstawiający uprawnienia aplikacji w witrynie Azure Portal.

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

  1. 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

    1. Dla metody tworzenia certyfikatu użyj Generate.

    2. Dodaj nazwę certyfikatu i podmiot.

    3. Zalecany okres ważności wynosi co najwyżej 12 miesięcy. Pozostałe wartości można pozostawić jako domyślne.

    4. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający tworzenie certyfikatu w witrynie Azure Portal.

    Notatka

    Po utworzeniu certyfikatu może być on oznaczony jako wyłączony. Odśwież witrynę i wyświetli certyfikat jako włączony.

  2. Przejdź do nowego certyfikatu i wybierz wiersz dla najnowszej wersji certyfikatu. Wybierz Pobierz w formacie CER, aby zapisać klucz publiczny certyfikatu.

    Zrzut ekranu przedstawiający certyfikat w witrynie Azure Portal, w którym można wyświetlić i pobrać certyfikat.

    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.

  3. W witrynie Azure Portal przejdź do utworzonej powyżej rejestracji aplikacji i wybierz pozycję Certificates list

    1. Wybierz załaduj certyfikat.
    2. Wybierz klucz publiczny (plik .cer) pobrany w ostatnim kroku.
    3. Wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający menu certyfikatów i tajemnic w witrynie Portal Azure.

  4. W portalu Azure pobierz identyfikator obiektu Maszyny Azure Arc.

    1. W obszarze zasoby usługi Azure Arc>Machineswybierz maszynę.

    2. W overviewznajdź JSON View.

    3. W obszarze Identityskopiuj wartość principalId.

      Zrzut ekranu przedstawiający kontrolę portalu w widoku JSON definicji maszyny.

  5. 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):

    1. Dodaj następujące role do zasobu.

      • Użytkownik certyfikatu usługi Key Vault
      • Użytkownik sekretów usługi Key Vault
    2. Sprawdź role w tej lokalizacji:

      Zrzut ekranu przedstawiający dodawanie ról IAM usługi Azure Key Vault.

    Aby użyć polityki dostępu Vault:

    1. Wybierz pozycję Zasady dostępu z menu nawigacji.

    2. Wybierz pozycję Utwórz.

    3. Dla uprawnień tajnych, wybierz Pobierz>Listę.

    4. Dla uprawnień certyfikatu wybierz opcję Pobierz listę>.

    5. Wybierz pozycję Dalej.

    6. Na stronie głównej Principal wyszukaj nazwę wystąpienia Machine — Azure Arc, czyli nazwę hosta programu SQL Server.

      Zrzut ekranu przedstawiający zasób serwera usługi Azure Arc w portalu.

    7. Wybierz pozycję Przejrzyj i utwórz.

    8. Sprawdź, czy wartość Principal>Object ID jest zgodna z identyfikatorem podmiotu zabezpieczeń tożsamości zarządzanej przypisanej do wystąpienia.

      Zrzut ekranu witryny Azure Portal w celu przejrzenia i utworzenia zasad dostępu.

      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

    9. 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:

  1. Przejdź do witryny Azure Portali wybierz pozycję SQL Server — Azure Arc, a następnie wybierz wystąpienie hosta programu SQL Server.

  2. 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.

  3. Wybierz Microsoft Entra ID i Purview w sekcji Ustawienia w menu zasobów.

  4. 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.

  5. Wybierz certyfikat zarządzany przez klienta i Wybierz certyfikat.

  6. Wybierz Zmień certyfikat, a następnie wybierz utworzone wcześniej wystąpienie AKV i certyfikat w nowym panelu.

  7. Wybierz rejestracja aplikacji zarządzanej przez klienta.

  8. Wybierz Zmień rejestrację aplikacjii wybierz utworzoną wcześniej rejestrację aplikacji.

  9. Wybierz pozycję Zapisz. Spowoduje to wysłanie żądania do agenta serwera Arc, który konfiguruje uwierzytelnianie Microsoft Entra dla tej instancji SQL Server.

    Zrzut ekranu przedstawiający ustawianie uwierzytelniania microsoft Entra w witrynie Azure Portal.

    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 z Saved 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 jako sysadmin. 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.

zrzut ekranu programu SSMS przedstawiający okno Łączenie z serwerem.

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.

Zobacz też