Autoryzowanie dostępu do bazy danych w usługach SQL Database, SQL Managed Instance i Azure Synapse Analytics

Dotyczy: Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Z tego artykułu dowiesz się więcej o:

  • Opcje konfigurowania usług Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics w celu umożliwienia użytkownikom wykonywania zadań administracyjnych i uzyskiwania dostępu do danych przechowywanych w tych bazach danych.
  • Konfiguracja dostępu i autoryzacji po początkowym utworzeniu nowego serwera.
  • Jak dodać identyfikatory logowania i konta użytkowników w master bazie danych i kontach użytkowników, a następnie przyznać tym kontom uprawnienia administracyjne.
  • Jak dodać konta użytkowników w bazach danych użytkowników, skojarzone z identyfikatorami logowania lub jako zawarte konta użytkowników.
  • Skonfiguruj konta użytkowników z uprawnieniami w bazach danych użytkowników przy użyciu ról bazy danych i jawnych uprawnień.

Ważne

Bazy danych w usługach Azure SQL Database, Azure SQL Managed Instance i Azure Synapse są określane zbiorczo w pozostałej części tego artykułu jako bazy danych, a serwer odwołuje się do serwera logicznego, który zarządza bazami danych dla usług Azure SQL Database i Azure Synapse.

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Uwierzytelnianie i autoryzacja

Uwierzytelnianie to proces potwierdzania, że użytkownik jest tym, za kogo się podaje. Użytkownik łączy się z bazą danych przy użyciu konta użytkownika. Gdy użytkownik próbuje nawiązać połączenie z bazą danych, udostępnia informacje o koncie użytkownika i uwierzytelnianiu. Użytkownik jest uwierzytelniany przy użyciu jednej z następujących dwóch metod uwierzytelniania:

  • Uwierzytelnianie SQL.

    W przypadku tej metody uwierzytelniania użytkownik przesyła nazwę konta użytkownika i skojarzone hasło w celu nawiązania połączenia. To hasło jest przechowywane w master bazie danych dla kont użytkowników połączonych z identyfikatorem logowania lub przechowywanych w bazie danych zawierającej konta użytkowników, które nie są połączone z logowaniem.

    Uwaga

    Usługa Azure SQL Database wymusza tylko złożoność hasła dla zasad haseł. Aby zapoznać się z zasadami haseł w usłudze Azure SQL Managed Instance, zobacz Azure SQL Managed Instance — często zadawane pytania.

  • Uwierzytelnianie Microsoft Entra

    W przypadku tej metody uwierzytelniania użytkownik przesyła nazwę konta użytkownika i żąda, aby usługa korzystała z informacji o poświadczeniach przechowywanych w identyfikatorze Entra firmy Microsoft (dawniej Azure Active Directory).

Identyfikatory logowania i użytkownicy: konto użytkownika w bazie danych może być skojarzone z nazwą logowania przechowywaną w master bazie danych lub może być nazwą użytkownika przechowywaną w pojedynczej bazie danych.

  • Identyfikator logowania to indywidualne konto w master bazie danych, z którym można połączyć konto użytkownika w co najmniej jednej bazie danych. W przypadku nazwy logowania informacje o poświadczeniach dla konta użytkownika przechowywane są z nazwą logowania.
  • Konto użytkownika to pojedyncze konto w dowolnej bazie danych, które może (ale nie musi) być powiązane z nazwą logowania. W przypadku konta użytkownika, które nie jest powiązane z nazwą logowania, informacje o poświadczeniach są przechowywane z kontem użytkownika.

Autoryzacja dostępu do danych i wykonywanie różnych akcji jest zarządzana przy użyciu ról bazy danych i jawnych uprawnień. Autoryzacja odnosi się do uprawnień przypisanych do użytkownika i określa, co może zrobić ten użytkownik. Autoryzacja jest kontrolowana przez członkostwo w rolach bazy danych konta użytkownika i uprawnienia na poziomie obiektu. Zalecanym najlepszym rozwiązaniem jest przyznanie użytkownikom minimalnych niezbędnych uprawnień.

Istniejące identyfikatory logowania i konta użytkowników po utworzeniu nowej bazy danych

Podczas pierwszego wdrażania usługi Azure SQL można określić nazwę logowania i hasło dla specjalnego typu logowania administracyjnego, administratora serwera. Podczas wdrażania następuje następująca konfiguracja identyfikatorów logowania i użytkowników w bazach danych master i użytkowników:

  • Nazwa logowania SQL z uprawnieniami administracyjnymi jest tworzona przy użyciu określonej nazwy logowania. Logowanie to indywidualne konto do logowania się do usług SQL Database, SQL Managed Instance i Azure Synapse.
  • To logowanie ma pełne uprawnienia administracyjne dla wszystkich baz danych jako podmiot zabezpieczeń na poziomie serwera. Nazwa logowania ma wszystkie dostępne uprawnienia i nie może być ograniczona. W wystąpieniu zarządzanym SQL ten identyfikator logowania jest dodawany do stałej roli serwera sysadmin (ta rola nie istnieje w usłudze Azure SQL Database).
  • Gdy to konto loguje się do bazy danych, są one dopasowane do specjalnego konta użytkownika (konta dboużytkownika, które istnieje w każdej bazie danych użytkowników). Użytkownik dbo ma wszystkie uprawnienia bazy danych w bazie danych i jest członkiem stałej db_owner roli bazy danych. Dodatkowe stałe role bazy danych zostały omówione w dalszej części tego artykułu.

Aby zidentyfikować konto administratora serwera dla serwera logicznego, otwórz witrynę Azure Portal i przejdź do karty Właściwości serwera lub wystąpienia zarządzanego.

Screenshot shows the SQL Server Properties page where you can obtain the Server admin login and Microsoft Entra admin values.

Screenshot shows the SQL managed instance Properties page where you can obtain the login and Microsoft Entra admin values.

Ważne

Nie można zmienić nazwy konta administratora serwera po jego utworzeniu. Aby zresetować hasło administratora serwera, przejdź do witryny Azure Portal, kliknij pozycję Serwery SQL, wybierz serwer z listy, a następnie kliknij pozycję Resetuj hasło. Aby zresetować hasło dla usługi SQL Managed Instance, przejdź do witryny Azure Portal, kliknij wystąpienie i kliknij pozycję Resetuj hasło. Możesz również użyć programu PowerShell lub interfejsu wiersza polecenia platformy Azure.

Tworzenie dodatkowych identyfikatorów logowania i użytkowników z uprawnieniami administracyjnymi

Na tym etapie serwer lub wystąpienie zarządzane jest konfigurowane tylko pod kątem dostępu przy użyciu pojedynczego konta logowania SQL i użytkownika. Aby utworzyć dodatkowe identyfikatory logowania z pełnymi lub częściowymi uprawnieniami administracyjnymi, masz następujące opcje (w zależności od trybu wdrożenia):

  • Tworzenie konta administratora entra firmy Microsoft z pełnymi uprawnieniami administracyjnymi

    Włącz uwierzytelnianie firmy Microsoft Entra i dodaj administratora firmy Microsoft Entra. Jedno konto Microsoft Entra można skonfigurować jako administrator wdrożenia usługi Azure SQL z pełnymi uprawnieniami administracyjnymi. To konto może być kontem pojedynczej lub grupy zabezpieczeń. Administrator firmy Microsoft Entra musi być skonfigurowany, jeśli chcesz używać kont microsoft Entra do nawiązywania połączenia z usługą SQL Database, wystąpieniem zarządzanym SQL lub usługą Azure Synapse. Aby uzyskać szczegółowe informacje na temat włączania uwierzytelniania w usłudze Microsoft Entra dla wszystkich typów wdrożeń usługi Azure SQL, zobacz następujące artykuły:

  • W usłudze SQL Managed Instance utwórz identyfikatory logowania SQL z pełnymi uprawnieniami administracyjnymi

    Uwaga

    Role dbmanager i loginmanagernie odnoszą się do wdrożeń usługi Azure SQL Managed Instance.

  • W usłudze SQL Database należy tworzyć nazwy logowania SQL z ograniczonymi uprawnieniami administracyjnymi

    Członkowie specjalnych master ról bazy danych dla usługi Azure SQL Database mają uprawnienia do tworzenia baz danych i zarządzania nimi lub tworzenia identyfikatorów logowania i zarządzania nimi. W bazach danych utworzonych przez użytkownika, który jest członkiem dbmanager roli, członek jest mapowany na db_owner stałą rolę bazy danych i może logować się do tej bazy danych i zarządzać nią przy użyciu dbo konta użytkownika. Te role nie mają jawnych uprawnień poza bazą master danych.

    Ważne

    Nie można utworzyć dodatkowego identyfikatora logowania SQL z pełnymi uprawnieniami administracyjnymi w usłudze Azure SQL Database. Tylko konto administratora serwera lub konto administratora firmy Microsoft Entra (które może być grupą Microsoft Entra) może dodawać lub usuwać inne identyfikatory logowania do ról serwera lub z nich. Jest to specyficzne dla usługi Azure SQL Database.

  • W dedykowanej puli SQL usługi Azure Synapse utwórz identyfikatory logowania SQL z ograniczonymi uprawnieniami administracyjnymi

    • Utwórz dodatkowe dane logowania SQL w master bazie danych.
    • Utwórz konto użytkownika w master bazie danych skojarzone z tym nowym identyfikatorem logowania.
    • Dodaj konto użytkownika do dbmanagerroli lub loginmanager obu tych elementów w master bazie danych przy użyciu instrukcji sp_addrolemember .
  • W bezserwerowej puli SQL usługi Azure Synapse utwórz identyfikatory logowania SQL z ograniczonymi uprawnieniami administracyjnymi

Tworzenie kont dla użytkowników niebędących administratorami

Konta dla użytkowników niebędących administratorami można tworzyć przy użyciu jednej z dwóch metod:

  • Tworzenie identyfikatora logowania

    Utwórz identyfikator logowania SQL w master bazie danych. Następnie utwórz konto użytkownika w każdej bazie danych, do której ten użytkownik potrzebuje dostępu i skojarz konto użytkownika z tym identyfikatorem logowania. Takie podejście jest preferowane, gdy użytkownik musi uzyskać dostęp do wielu baz danych i chcesz zachować synchronizowanie haseł. Jednak takie podejście ma złożoność w przypadku użycia z replikacją geograficzną, ponieważ identyfikator logowania należy utworzyć zarówno na serwerze podstawowym, jak i na serwerach pomocniczych. Aby uzyskać więcej informacji, zobacz Konfigurowanie zabezpieczeń usługi Azure SQL Database i zarządzanie nimi na potrzeby przywracania geograficznego lub trybu failover.

  • Tworzenie konta użytkownika

    Utwórz konto użytkownika w bazie danych, do którego użytkownik potrzebuje dostępu (nazywanego również zawartym użytkownikiem).

    • W usłudze SQL Database zawsze można utworzyć tego typu konto użytkownika.
    • Usługa SQL Managed Instance obsługująca jednostki serwera Entra firmy Microsoft umożliwia tworzenie kont użytkowników w celu uwierzytelniania w usłudze SQL Managed Instance bez konieczności tworzenia użytkowników bazy danych jako użytkownika zawartej bazy danych.

    Dzięki temu podejściu informacje o uwierzytelnianiu użytkownika są przechowywane w każdej bazie danych i replikowane automatycznie do baz danych replikowanych geograficznie. Jeśli jednak to samo konto istnieje w wielu bazach danych i używasz uwierzytelniania SQL, musisz zachować synchronizację haseł ręcznie. Ponadto jeśli użytkownik ma konto w różnych bazach danych z różnymi hasłami, zapamiętanie tych haseł może stać się problemem.

Ważne

Aby utworzyć zawartych użytkowników zamapowanych na tożsamości entra firmy Microsoft, musisz zalogować się przy użyciu konta Microsoft Entra w bazie danych w usłudze Azure SQL Database. W usłudze SQL Managed Instance identyfikator logowania SQL z uprawnieniami sysadmin może również utworzyć identyfikator logowania lub użytkownika usługi Microsoft Entra.

Przykłady przedstawiające sposób tworzenia identyfikatorów logowania i użytkowników można znaleźć w następujących tematach:

Napiwek

Aby zapoznać się z samouczkiem dotyczącym zabezpieczeń obejmującym tworzenie użytkowników w usłudze Azure SQL Database, zobacz Samouczek: zabezpieczanie usługi Azure SQL Database.

Używanie stałych i niestandardowych ról bazy danych

Po utworzeniu konta użytkownika w bazie danych na podstawie nazwy logowania lub zawartego użytkownika możesz autoryzować tego użytkownika do wykonywania różnych akcji i uzyskiwania dostępu do danych w określonej bazie danych. Aby autoryzować dostęp, możesz użyć następujących metod:

  • Naprawiono role bazy danych

    Dodaj konto użytkownika do stałej roli bazy danych. Istnieją 9 stałych ról bazy danych, z których każdy ma zdefiniowany zestaw uprawnień. Najczęstsze stałe role bazy danych to: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter i db_denydatareader. Rola db_owner jest najczęściej używana do udzielenia pełnych uprawnień jedynie niewielkiej liczbie użytkowników. Inne ustalone role bazy danych ułatwiają szybkie tworzenie prostej bazy danych, ale nie zaleca się ich używania w większości przypadków tworzenia produkcyjnych baz danych. Na przykład db_datareader stała rola bazy danych udziela dostępu do odczytu do każdej tabeli w bazie danych, która jest bardziej niż jest ściśle wymagana.

  • Niestandardowa rola bazy danych

    Utwórz niestandardową rolę bazy danych przy użyciu instrukcji CREATE ROLE . Rola niestandardowa umożliwia tworzenie własnych ról bazy danych zdefiniowanych przez użytkownika i dokładne przyznawanie każdej roli najmniejszych uprawnień niezbędnych do potrzeb biznesowych. Następnie możesz dodać użytkowników do roli niestandardowej. Gdy użytkownik jest członkiem wielu ról, łączą one uprawnienia ich wszystkich.

  • Udzielanie uprawnień bezpośrednio

    Udziel uprawnień konta użytkownika bezpośrednio. Istnieje ponad 100 uprawnień, których można indywidualnie udzielić lub odmówić w usłudze SQL Database. Wiele z tych uprawnień jest zagnieżdżonych. Na przykład uprawnienie UPDATE na schemacie obejmuje UPDATE uprawnienie dla każdej tabeli na tym schemacie. Podobnie jak w przypadku większości systemów, odmowa przyznania uprawnienia kasuje przyznanie. Ze względu na zagnieżdżoną naturę uprawnień oraz ich liczbę zaprojektowanie systemu zabezpieczającego bazę danych w prawidłowy sposób może wymagać starannej analizy. Rozpocznij od listy uprawnień Uprawnienia (aparat bazy danych) i przejrzyj obszerny wykaz uprawnień.

Korzystanie z grup

Efektywne zarządzanie dostępem używa uprawnień przypisanych do grup zabezpieczeń usługi Active Directory i stałych lub niestandardowych ról zamiast do poszczególnych użytkowników.

  • W przypadku korzystania z uwierzytelniania Microsoft Entra umieść użytkowników firmy Microsoft Entra w grupie zabezpieczeń Entra firmy Microsoft. Utwórz użytkownika zawartej bazy danych dla tej grupy. Dodaj co najmniej jednego użytkownika bazy danych jako członka do niestandardowych lub wbudowanych ról bazy danych z określonymi uprawnieniami odpowiednimi dla tej grupy użytkowników.

  • W przypadku korzystania z uwierzytelniania SQL utwórz użytkowników zawartej bazy danych w bazie danych. Umieść co najmniej jednego użytkownika bazy danych w roli niestandardowej bazy danych z określonymi uprawnieniami odpowiednimi dla tej grupy użytkowników.

    Uwaga

    Można również używać grup dla użytkowników nieuwzwiązanych baz danych.

Należy zapoznać się z następującymi funkcjami, których można użyć do ograniczania lub podnoszenia uprawnień:

Następne kroki

Aby zapoznać się z omówieniem wszystkich funkcji zabezpieczeń usługi Azure SQL Database i usługi SQL Managed Instance, zobacz Omówienie zabezpieczeń.