Udostępnij za pośrednictwem


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 firmy Microsoft (dawniej Azure Active Directory), które są identyfikatorami logowania w wirtualnej master bazie danych usługi SQL Database. Istnieje kilka korzyści z używania podmiotów zabezpieczeń serwera Microsoft Entra dla usługi SQL Database:

  • 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 i dbmanager .
  • 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.

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.

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:
  • 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 powrotu SUSER_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.
      

Następne kroki