Ćwiczenie — konfigurowanie uwierzytelniania

Ukończone

W tym ćwiczeniu utworzysz identyfikatory logowania, użytkowników i administratorów, a ty przyznasz użytkownikom firmy Microsoft Entra dostęp do bazy danych, tak jak w przypadku zwykłych użytkowników w programie SQL Server.

  1. Otwórz program SQL Server Management Studio (SSMS) i połącz się z serwerem logicznym usługi Azure SQL Database, jeśli nie masz jeszcze połączenia.

  2. Po skonfigurowaniu baz danych i połączeniu się z nimi następnym krokiem może być dodanie innych użytkowników i udzielenie im dostępu. Podobnie jak w programie SQL Server, możesz dodawać nowe nazwy logowania i użytkowników.

    W programie SSMS kliknij prawym przyciskiem myszy serwer bazy danych, wybierz pozycję Nowe zapytanie i utwórz nowe zapytanie za pomocą następującego polecenia. Wybierz pozycję Wykonaj , aby uruchomić zapytanie:

    -- Create a new SQL login and give them a password
    CREATE LOGIN ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    

    Napiwek

    W przypadku większości zapytań w usłudze Azure SQL Database należy kliknąć prawym przyciskiem myszy bazę danych na serwerze logicznym usługi Azure SQL Database. W usługach SQL Server i Azure SQL Managed Instance można wykonywać zapytania na poziomie serwera i używać polecenia USE <DatabaseName>, ale w usłudze Azure SQL Database należy wykonać zapytanie bezpośrednio do bazy danych. Jest to spowodowane tym że instrukcja USE jest nieobsługiwana. Istnieje kilka wyjątków od wykonywania zapytań dotyczących bazy danych w usłudze Azure SQL Database, a jednym z nich jest logowanie. Aby utworzyć i zmienić identyfikatory logowania, musisz nawiązać połączenie z wirtualną master bazą danych.

    Teraz masz identyfikator logowania na poziomie serwera. Następnym krokiem jest utworzenie użytkowników w AdventureWorks bazie danych i nadanie im dostępu do odczytu/zapisu w razie potrzeby. Kliknij prawym przyciskiem myszy AdventureWorks bazę danych i wybierz pozycję Nowe zapytanie. Utwórz nowe zapytanie przy użyciu następującego polecenia, a następnie wybierz pozycję Wykonaj:

    -- Create a new SQL user from that login
    CREATE USER ApplicationUser FOR LOGIN ApplicationUser;
    
    -- Until you run the following two lines, ApplicationUser has no access to read or write data
    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

    Użytkownicy będą mogli zalogować się tylko do bazy danych AdventureWorks, a nie do całego serwera.

    Najlepszym rozwiązaniem jest tworzenie kont niebędących administratorami na poziomie bazy danych, o ile dani użytkownicy nie muszą mieć możliwości wykonywania zadań administratorów.

  3. Użytkownicy programu SQL Server mogą znać pojęcie użytkownika zawartej bazy danych. Oznacza to, że użytkownik ma dostęp tylko do określonych baz danych i nie ma nazwy logowania na potrzeby logowania się na serwerze. W usłudze Azure SQL Database można utworzyć użytkowników zawartej bazy danych przy użyciu uwierzytelniania SQL lub uwierzytelniania firmy Microsoft Entra. Musisz być w kontekście bazy danych użytkownika, do której chcesz utworzyć dostęp użytkownika (w przeciwieństwie do elementu ).master W programie SSMS kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Nowe zapytanie. Utwórz nowe zapytanie przy użyciu następującego polecenia, a następnie wybierz pozycję Wykonaj:

    CREATE USER MyDatabaseUser WITH PASSWORD = 'C0mpl3xPa55word!'
    
  4. Wybierz pozycję Połącz w lewym górnym rogu Eksplorator obiektów, a następnie wybierz pozycjęAparat bazy danych. Skonfiguruj stronę główną, aby nawiązać połączenie z serwerem logicznym usługi Azure SQL Database. W polu Logowanie wprowadź wartość MyDatabaseUser, a w polu Hasło wprowadź wartość C0mpl3xPa55word!.

  5. Musisz również ustawić nazwę bazy danych. Możesz to zrobić, przechodząc do obszaru Opcje>Dodatkowe parametry połączenia, gdzie możesz wprowadzić Initial Catalog=AdventureWorks. Należy to zrobić ręcznie, ponieważ użytkownik MyDatabaseUser nie ma dostępu do skanowania serwera w celu wybrania bazy danych.

  6. Wybierz pozycję Połącz, a następnie potwierdź, że masz dostęp do bazy danych.

  7. W ramach kroku czyszczenia kliknij prawym przyciskiem myszy połączenie z myDatabaseUser, a następnie wybierz pozycję Rozłącz.

Udzielanie dostępu innym użytkownikom firmy Microsoft Entra

Identyfikatory logowania można tworzyć na podstawie kont Microsoft Entra jako użytkownika zawartej CREATE USER [anna@contoso.com] FROM EXTERNAL PROVIDER bazy danych przy użyciu składni języka T-SQL. Użytkownik zawartej bazy danych mapuje tożsamość w katalogu Microsoft Entra skojarzonym z bazą danych i nie ma identyfikatora logowania w master bazie danych.

Wraz z wprowadzeniem identyfikatorów logowania do serwera Entra firmy Microsoft w usłudze Azure SQL Database można utworzyć identyfikatory logowania na podstawie podmiotów zabezpieczeń firmy Microsoft w wirtualnej master bazie danych usługi SQL Database. Możesz utworzyć identyfikatory logowania entra firmy Microsoft na podstawie użytkowników, grup i jednostek usługi firmy Microsoft. Aby uzyskać więcej informacji, zobacz Microsoft Entra server principals (Podmioty zabezpieczeń serwera Firmy Microsoft)

Ponadto można użyć witryny Azure Portal tylko do tworzenia administratorów, a role kontroli dostępu opartej na rolach platformy Azure nie są propagowane do serwerów logicznych usługi Azure SQL Database. Musisz udzielić dodatkowych uprawnień do serwera i bazy danych przy użyciu języka Transact-SQL (T-SQL).