Opis kontekstu wykonania

Kontekst wykonania jest określone przez użytkownika lub podłączonego do sesja logowania lub nakaz (wywołanie) modułu.Ustanawia ona tożsamości przeciwko uprawnienia do wykonywania instrukcji lub wykonać akcje są sprawdzane.Kontekst wykonania jest reprezentowany przez parę tokeny zabezpieczające: token logowania i tokenu użytkownika.Tokeny identyfikację podmiotów podstawowy i pomocniczy, wobec których uprawnienia są sprawdzane i źródło używane do uwierzytelnienia tokenu.Logowanie, łączenie z wystąpienie SQL Server ma token jednego logowania i jeden lub więcej tokeny użytkownika, w zależności od liczby baz danych, do których konto ma dostęp.

Użytkownik i tokeny zabezpieczeń logowania

Token zabezpieczeń dla użytkownika lub logowania zawiera następujące informacje:

  • Jeden serwer lub głównej bazy danych jako podstawowy tożsamości

  • Jeden lub więcej podmiotów jako pomocnicze tożsamości

  • Zero lub więcej wystawców uwierzytelnienia

  • Przywileje i uprawnienia tożsamości podstawowy i pomocniczy

Podmioty są osoby, grupy i procesy, które mogą żądać SQL Server zasobów.Podmioty są klasyfikowane według ich zakres wpływu: Poziom systemu Windows SQL Server poziom, lub poziom bazy danych.Aby uzyskać więcej informacji, zobacz Podmioty (aparat bazy danych).

Wystawców uwierzytelnienia są podmioty, certyfikaty lub klucze asymetryczne zaświadczającą o autentyczności tokenu.Często wystawca uwierzytelnienia tokenu jest wystąpienie SQL Server.Aby uzyskać więcej informacji dotyczących wystawców uwierzytelnienia Zobacz Rozszerzanie bazy danych personifikacji przy użyciu jako EXECUTE.Aby uzyskać więcej informacji na temat certyfikaty i klucze asymetryczne Zobacz Szyfrowanie hierarchii.

Token logowania jest ważny przez wystąpienie SQL Server.Zawiera ono podstawowy i pomocniczy tożsamości, wobec których sprawdzane są uprawnienia na poziomie serwera i żadnych uprawnień poziom bazy danych związanych z tych tożsamości.Tożsamość podstawowy jest sam logowania.Pomocniczy tożsamości obejmuje uprawnienia odziedziczone role i grupy.

Token użytkownika jest prawidłowy tylko dla określonej bazy danych.Zawiera ono podstawowy i pomocniczy tożsamości, wobec których sprawdzane są uprawnienia poziom bazy danych.Podstawowa tożsamość jest użytkownika bazy danych sam.Pomocniczy tożsamości obejmuje uprawnienia odziedziczone role bazy danych.Tokeny użytkownika nie zawierają członkostwa roli serwera i nie honoruje uprawnień poziom serwera tożsamości w tokenie, łącznie z tymi, które są przyznawane na poziomie serwera public rolę.

Jeśli SQL Server jawnie tworzone jest konto logowania lub użytkownika, identyfikator logowania lub użytkownika utworzone konto służy jako podstawowy tożsamość w tokenie logowania lub użytkownika.Gdy zleceniodawca ma niejawna dostęp do wystąpienie SQL Server, lub dostęp do bazy danych za pomocą uprawnień serwera kontroli, tożsamość podstawowego tokenu logowania jest domyślnie public rolę.Tożsamość podstawowego tokenu użytkownika jest public.

Ważna informacjaWażne:

Członkowie sysadmin stała rola serwera zawsze dbo jako podstawowy tożsamości ich tokenu użytkownika.

Przykład tokenem logowania

Maria ma SQL Server logowania, który jest mapowany do swojego konta systemu Windows MyDomain\Mary.Aby wyświetlić informacje o tokenem logowania utworzonych dla jej, Mary uruchamia tej instrukcja:

SELECT principal_id, sid, name, type, usage FROM sys.login_token;
GO

Zestaw wyników może wyglądać następująco:

principal_id sid name type usage

------------ ----------- ------------- -------------- -------------

261 0x583EA MyDomain\Mary WINDOWS LOGIN GRANT OR DENY

2 0x02 public SERVER ROLE GRANT OR DENY

(2 row(s) affected)

Zestaw wyników pokazuje, że konta systemu Windows dla Mary jest podstawowym tożsamość jej tokenu logowania. principal_id Utworzony podczas tworzenia swojego konta logowania jest używany jako podstawowy principal_id w tokenie logowania. public Roli jest wymieniony jako pomocnicze tożsamości, Maria znajduje się element członkowski to rola domyślna.Gdyby Maria element członkowski innych ról poziom serwera, one również będą oznaczone jako pomocnicze tożsamości.W czas logowania został utworzony, swojego konta systemu Windows został sprawdzony przez wystąpienie SQL Server.W związku z tym, kiedy Maria zarejestruje wystąpienia SQL Server, wystąpienie jest wystawca uwierzytelnienia tokenu jej logowania.Ponieważ wystąpienie SQL Server jest wystawca uwierzytelnienia tokenu logowania Marii, wystawca uwierzytelnienia, takich jak podmiot, certyfikat lub klucz asymetrycznego, nie jest zwracane w kwerendzie.

Przykład tokenem użytkownika

Maria ma jeden token użytkownika dla każdej bazy danych, do którego użytkownik ma dostęp.W tym przykładzie pierwsza Mary jest połączony z master bazy danych.Aby wyświetlić informacje dotyczące tokenu użytkownika utworzone dla jej w master bazy danych, Mary działa ta instrukcja:

SELECT principal_id, sid, name, type, usage FROM sys.user_token;
GO

Zestaw wyników może wyglądać następująco:

principal_id sid name type usage

------------ ----------- ------------- -------------- -------------

2 NULL guest SQL USER GRANT OR DENY

0 NULL public ROLE GRANT OR DENY

(2 row(s) affected)

Zestaw wyników pokazuje, że Joanna nie jest jawne użytkownika w master bazy danych, ale zamiast niego ma dostęp poprzez guest konta.Podstawowa tożsamość jej tokenu użytkownika jest guest użytkownika. public Roli jest wymieniony jako pomocnicze tożsamości, ponieważ guest jest element członkowski to rola domyślna.Tokenem użytkownika Maria w master Baza danych zawiera wszystkie przywileje poziom bazy danych i uprawnień dla guest użytkownika i public rolę.

W poniższym przykładzie utworzono jawne konto dla Maria w Sales bazy danych.Ponadto została ona dodana do db_ddladmin stała rola bazy danych danej bazy danych.Z Sales w bieżącej bazie danych działa Maria SELECT * FROM sys.user_token ponownie.

Zestaw wyników może wyglądać następująco:

principal_id sid name type usage

------------ ----------- ------------- -------------- -------------

5 0x36CC4BBD1 Mary SQL USER GRANT OR DENY

0 NULL public ROLE GRANT OR DENY

16387 NULL db_ddladmin ROLE GRANT OR DENY

To zestaw wyników odzwierciedla tokenu użytkownika utworzone dla Maria w Sales bazy danych.Ponieważ Maria został jawnie dodany jako użytkownik do Sales bazy danych, użytkownik jest wymieniony jako podstawowy tożsamości.Dwie role to element członkowski z są wyświetlane jako pomocnicze tożsamości.Wystawca uwierzytelnienia tokenu użytkownika Marii jest wystąpienie SQL Server.

Przełączanie kontekstu wykonania

W SQL Server, kontekst wykonywania sesja można jednoznacznie zmieniony przez podanie nazwy użytkownika lub logowania w AS wykonywanie instrukcja.Kontekst wykonywania modułu, takich jak procedura składowana, wyzwalacza lub funkcja zdefiniowanej przez użytkownika można zmienić niejawnie przez podanie nazwy użytkownika lub logowania w EXECUTE AS klauzula definicji modułu.Po przełączeniu kontekst wykonania do innego użytkownika lub logowania, SQL Server sprawdza uprawnienia przeciwko tokeny użytkownika i logowania dla tego konta.W zasadzie tego konta jest uznawane na czas trwania sesja lub wykonanie modułu.Aby uzyskać więcej informacji, zobacz Opis przełączania kontekstu.