Udostępnij za pomocą


Lekcja 2. Konfigurowanie uprawnień do obiektów bazy danych

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)Baza danych SQL w usłudze Microsoft Fabric

Note

Ścieżka szkoleniowa Wprowadzenie do wykonywania zapytań za pomocą języka Transact-SQL zawiera bardziej szczegółową zawartość wraz z praktycznymi przykładami.

Udzielenie użytkownikowi dostępu do bazy danych obejmuje trzy kroki. Najpierw należy utworzyć identyfikator logowania. Identyfikator logowania umożliwia użytkownikowi nawiązanie połączenia z aparatem bazy danych programu SQL Server. Następnie należy skonfigurować logowanie jako użytkownik w określonej bazie danych. Na koniec przyznasz temu użytkownikowi uprawnienia do obiektów bazy danych. W tej lekcji przedstawiono te trzy kroki i pokazano, jak utworzyć widok i procedurę składowaną jako obiekt.

Note

Ta lekcja opiera się na obiektach utworzonych w lekcji 1 — tworzenie obiektów bazy danych. Ukończ lekcję 1, zanim przejdziesz do lekcji 2.

Prerequisites

Do ukończenia tego samouczka potrzebny jest program SQL Server Management Studio i dostęp do wystąpienia programu SQL Server.

Jeśli nie masz dostępu do wystąpienia programu SQL Server, wybierz platformę z poniższych linków. Jeśli wybierzesz opcję Uwierzytelnianie SQL, użyj poświadczeń logowania programu SQL Server.

Słuchamy: Jeśli znajdziesz coś nieaktualnego lub nieprawidłowego w tym artykule, na przykład kroku lub przykładu kodu, poinformuj nas. Możesz kliknąć przycisk Ta strona w sekcji Opinie w dolnej części tej strony. Każdy element opinii na temat języka SQL jest zwykle odczytywany następnego dnia. Thanks.

Utwórz konto logowania

Aby uzyskać dostęp do aparatu bazy danych, użytkownicy muszą zalogować się. Identyfikator logowania może reprezentować tożsamość użytkownika jako konto systemu Windows lub jako członek grupy systemu Windows lub identyfikator logowania może być identyfikatorem logowania programu SQL Server, który istnieje tylko w programie SQL Server. Jeśli to możliwe, należy użyć uwierzytelniania systemu Windows.

Domyślnie administratorzy na komputerze mają pełny dostęp do programu SQL Server. W tej lekcji chcemy mieć mniej uprzywilejowanego użytkownika; w związku z tym na komputerze utworzysz nowe lokalne konto uwierzytelniania systemu Windows. Aby to zrobić, musisz być administratorem na komputerze. Następnie przyznasz temu nowemu użytkownikowi dostęp do programu SQL Server.

Tworzenie nowego konta systemu Windows

  1. Wybierz pozycję Start, wybierz pozycję Uruchom, w polu Otwórz wpisz %SystemRoot%\system32\compmgmt.msc /s , a następnie wybierz przycisk OK , aby otworzyć program do zarządzania komputerem.
  2. W obszarze Narzędzia systemowe rozwiń węzeł Użytkownicy i grupy lokalne, kliknij prawym przyciskiem myszy pozycję Użytkownicy, a następnie wybierz pozycję Nowy użytkownik.
  3. W polu Nazwa użytkownika wpisz Mary.
  4. W polu Hasło i Potwierdź hasło wpisz silne hasło, a następnie wybierz pozycję Utwórz , aby utworzyć nowego lokalnego użytkownika systemu Windows.

Tworzenie identyfikatora logowania SQL

W oknie Edytor zapytań programu SQL Server Management Studio wpisz i wykonaj następujący kod, zastępując computer_name ciąg nazwą komputera. FROM WINDOWS wskazuje, że system Windows uwierzytelnia użytkownika. Opcjonalny DEFAULT_DATABASE argument łączy się z Mary bazą TestData danych, chyba że parametry połączenia wskazują inną bazę danych. To stwierdzenie wprowadza średnik jako opcjonalne zakończenie instrukcji Transact-SQL.

CREATE LOGIN [computer_name\Mary]
    FROM WINDOWS
    WITH DEFAULT_DATABASE = [TestData];
GO

To autoryzuje nazwę Maryużytkownika , uwierzytelnioną przez komputer, aby uzyskać dostęp do tego wystąpienia programu SQL Server. Jeśli na komputerze znajduje się więcej niż jedno wystąpienie programu SQL Server, należy utworzyć dane logowania dla każdego wystąpienia, które Mary musi uzyskać dostęp.

Note

Ponieważ Mary nie jest kontem domeny, tę nazwę użytkownika można uwierzytelnić tylko na tym komputerze.

Udzielanie dostępu do bazy danych

Konto Mary ma teraz dostęp do tego wystąpienia programu SQL Server, ale nie ma uprawnień dostępu do baz danych. Konto nie ma nawet dostępu do domyślnej bazy danych TestData , dopóki nie autoryzujesz konta jako użytkownika bazy danych.

Aby udzielić Mary dostępu, przejdź do TestData bazy danych, a następnie użyj instrukcji CREATE USER, aby zamapować identyfikator logowania na użytkownika o nazwie Mary.

Tworzenie użytkownika w bazie danych

Wpisz i wykonaj następujące instrukcje (zastępując computer_name ciąg nazwą komputera), aby udzielić Mary dostępu do TestData bazy danych.

USE [TestData];
GO

CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO

Teraz Mary ma dostęp zarówno do programu SQL Server, jak TestData i bazy danych.

Tworzenie widoków i procedur składowanych

Jako administrator możesz wykonać polecenie SELECT z Products tabeli i vw_Names widoku oraz wykonać procedurę pr_Names , jednak Mary nie może. Aby przyznać Mary niezbędne uprawnienia, użyj instrukcji GRANT.

Udzielanie uprawnień do procedury składowanej

Wykonaj następującą instrukcjęMary, aby nadać EXECUTE uprawnienie do pr_Names procedury składowanej.

GRANT EXECUTE ON pr_Names TO Mary;
GO

W tym scenariuszu Products Mary może uzyskać dostęp tylko do tabeli przy użyciu procedury składowanej. Jeśli chcesz, aby Mary mogła wykonać instrukcję SELECT w widoku, musisz również wykonać polecenie GRANT SELECT ON vw_Names TO Mary. Aby usunąć dostęp do obiektów bazy danych, użyj instrukcji REVOKE.

Note

Jeśli tabela, widok i procedura składowana nie należą do tego samego schematu, przyznanie uprawnień staje się bardziej złożone.

O GRANT

Aby wykonać procedurę składowaną, musisz mieć uprawnienie EXECUTE. Musisz mieć uprawnienia SELECT, INSERT, UPDATE i DELETE, aby uzyskać dostęp do danych i zmienić je. Instrukcja GRANT jest również używana dla innych uprawnień, takich jak uprawnienia do tworzenia tabel.

Dalsze kroki

W następnym artykule przedstawiono sposób usuwania obiektów bazy danych utworzonych w innych lekcjach.

Przejdź do następnego artykułu, aby dowiedzieć się więcej: