Autoryzowanie dostępu do bazy danych w usługach SQL Database, SQL Managed Instance i Azure Synapse Analytics
Dotyczy: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics
Z tego artykułu dowiesz się więcej o:
- Opcje konfiguracji usług Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics, które umożliwiają użytkownikom wykonywanie zadań administracyjnych i uzyskiwanie 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, 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:
-
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 być, ale nie musi być połączone z identyfikatorem 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
dbo
uż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łejdb_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, otwórz witrynę Azure Portal i przejdź do karty Właściwości serwera logicznego lub wystąpienia zarządzanego:
Ważne
Nie można zmienić nazwy konta administratora serwera po jego utworzeniu. Aby zresetować hasło administratora serwera, przejdź do witryny Azure Portal, wybierz pozycję Serwery SQL, wybierz serwer z listy, a następnie wybierz pozycję Resetuj hasło. Aby zresetować hasło dla usługi SQL Managed Instance, przejdź do witryny Azure Portal, wybierz wystąpienie i wybierz 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
- Utwórz dodatkowe dane logowania SQL w
master
bazie danych. - Dodaj identyfikator logowania do stałej roli serwera sysadmin przy użyciu instrukcji ALTER SERVER ROLE . To logowanie będzie miało pełne uprawnienia administracyjne.
- Alternatywnie utwórz identyfikator logowania firmy Microsoft Entra przy użyciu składni CREATE LOGIN .
Uwaga
Role
dbmanager
iloginmanager
nie odnoszą się do wdrożeń usługi Azure SQL Managed Instance.- Utwórz dodatkowe dane logowania SQL w
W usłudze SQL Database należy tworzyć nazwy logowania SQL z ograniczonymi uprawnieniami administracyjnymi
- Utwórz dodatkowe dane logowania SQL w
master
bazie danych. - Dodaj rolę Login do
##MS_DatabaseManager##
ról na poziomie serwera i i##MS_DatabaseConnector##
przy użyciu instrukcji ALTER SERVER ROLE.##MS_LoginManager##
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łonkiemdbmanager
roli, członek jest mapowany nadb_owner
stałą rolę bazy danych i może logować się do tej bazy danych i zarządzać nią przy użyciudbo
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.
- Utwórz dodatkowe dane logowania SQL w
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
dbmanager
roli lubloginmanager
obu tych elementów wmaster
bazie danych przy użyciu instrukcji sp_addrolemember .
- Utwórz dodatkowe dane logowania SQL w
W bezserwerowej 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. - Dodaj identyfikator logowania SQL do stałej roli serwera sysadmin przy użyciu instrukcji ALTER SERVER ROLE .
- Alternatywnie utwórz identyfikator logowania firmy Microsoft Entra przy użyciu składni CREATE LOGIN .
- Utwórz dodatkowe dane logowania SQL w
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:
- Tworzenie identyfikatora logowania dla usługi Azure SQL Database
- Tworzenie identyfikatora logowania dla usługi Azure SQL Managed Instance
- Tworzenie identyfikatora logowania dla usługi Azure Synapse
- Tworzenie użytkownika
- Tworzenie użytkowników zawartych w usłudze Microsoft Entra
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.
Aby dodać użytkownika do stałej roli bazy danych:
- W usługach Azure SQL Database i Azure Synapse bezserwerowej puli SQL użyj instrukcji ALTER ROLE . Przykłady można znaleźć w temacie ALTER ROLE examples (Przykłady ALTER ROLE)
- W dedykowanej puli SQL usługi Azure Synapse użyj instrukcji sp_addrolemember. Aby zapoznać się z przykładami, zobacz przykłady sp_addrolemember.
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 obejmujeUPDATE
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ń:
- Personifikacji i podpisywania modułów można używać do bezpiecznego tymczasowego podnoszenia poziomu uprawnień.
- Zabezpieczenia na poziomie wiersza mogą służyć do ograniczania wierszy, do których może uzyskać dostęp użytkownik.
- Maskowania danych można używać do ograniczania ujawniania danych wrażliwych.
- Procedury składowane umożliwiają ograniczenie czynności wykonywanych w bazie danych.