Udostępnij za pośrednictwem


Understanding Execution Context

Kontekst wykonania jest określony przez użytkownika lub podłączonego do sesja logowania lub wykonywania (wywołanie) modułu.Ustala ona tożsamości przed uprawnienia do wykonywania instrukcji lub wykonywania akcji są sprawdzane.Kontekst wykonania jest reprezentowany przez dwa tokeny zabezpieczeń: token logowania i tokenu użytkownika. Tokeny zidentyfikować podmiotów podstawowy i zapasowy przed uprawnienia są sprawdzane i urządzenie źródłowe używane do uwierzytelnienia tokenu.Nawiązywanie połączenia z wystąpienie identyfikator logowania SQL Server token jeden identyfikator 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 tokenów zabezpieczeń logowania

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

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

  • Jeden lub więcej głównych obiektów jako pomocnicze tożsamości

  • Zero lub więcej uwierzytelnienia

  • Przywileje i uprawnienia tożsamości podstawowego i pomocniczego

Podmioty są osoby, grupy i procesów, które mogą żądać SQL Server zasoby. Podmioty, są określane przez ich zakresie wpływów: System Windows poziomu, SQL Server poziom lub na poziomie bazy danych. Aby uzyskać więcej informacji zobaczPrincipals (Database Engine).

Uwierzytelnienia są główne, certyfikaty lub klucze asymetryczne vouch autentyczności tokenu.Często wystawca uwierzytelnienia tokenu jest wystąpienie SQL Server. Aby uzyskać więcej informacji na temat Zobacz uwierzytelnienia Extending Database Impersonation by Using EXECUTE AS. Aby uzyskać więcej informacji na temat certyfikaty i klucze asymetryczne Zobacz Encryption Hierarchy.

Token logowania jest prawidłowy dla danego wystąpienie SQL Server. Zawiera on podstawowego i pomocniczego tożsamości, które są sprawdzane uprawnienia poziom serwera i żadnych uprawnień poziom bazy danych związane z tych tożsamości.Podstawowa tożsamość jest identyfikator logowania się.Pomocniczy tożsamości obejmuje uprawnienia odziedziczone role i grupy.

Token użytkownika jest prawidłowa tylko dla konkretnej bazy danych.Zawiera on podstawowego i pomocniczego tożsamości, które są sprawdzane uprawnienia poziom bazy danych.Podstawowa tożsamość jest użytkownik bazy danych sam.Pomocniczy tożsamości obejmuje uprawnienia odziedziczone role bazy danych.Tokeny użytkowników nie zawierają członkostwa roli serwera i nie przestrzegać serwera poziom uprawnień tożsamości w tokenie, łącznie z tymi, które są przypisywane do roli publicznej poziomie serwera.

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 logowania lub użytkownik tokenu. Jeśli obiektem ma zawsze dostęp do wystąpienie SQL Server, lub dostęp do bazy danych za pomocą uprawnień serwera kontroli, podstawowych tożsamości w tokenie logowania jest domyślną rolę publicznych. Podstawowa tożsamość w tokenie użytkownika jest publiczny.

Important noteImportant Note:

Członkowie roli sysadmin stałych serwera mają zawsze dbo z tożsamością podstawowego ich tokenu użytkownika.

Przykład token logowania

Joanna została SQL Server Identyfikator logowania, który jest mapowany do swojego konta systemu Windows MyDomain\Mary. Aby wyświetlić informacje dotyczące tokenu logowania utworzony dla niej, Mary działa tej instrukcja:

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

Zestaw wyników mogą wyglądać podobnie do następującego:

Nazwa identyfikatora sid principal_id wpisz użycia

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

261 0x583EA MyDomain\Mary GRANT WINDOWS LOGIN OR DENY

2 0x02 publicznych SERVER ROLE GRANT OR DENY

(dotyczy wiersze 2)

Pokazuje, że konto systemu Windows dla Mary jest podstawowa tożsamość jej tokenu logowania zestaw wyników.Principal_id, utworzony podczas tworzenia swojego konta logowania jest używany jako podstawowy principal_id w tokenie logowania.Roli publicznej jest wymieniony jako pomocnicze tożsamości, ponieważ Mary a element członkowski tej roli domyślnej.Joanna, gdyby członkiem innych ról poziom serwera, one może również być podana jako pomocniczego tożsamości.W czasie logowania został utworzony swojego konta systemu Windows został sprawdzony przez wystąpienie SQL Server. W związku z tym, kiedy Mary 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 token użytkownika

Anna 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 podłączony do wzorzec bazy danych.Aby wyświetlić informacje o tokenie użytkownika utworzony dla niej w wzorzec bazy danych, Mary uruchamia tej instrukcja:

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

Zestaw wyników mogą wyglądać podobnie do następującego:

Nazwa identyfikatora sid principal_id wpisz użycia

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

2 NULL gości SQL USER GRANT OR DENY

Wartość 0 NULL publicznych ROLE GRANT OR DENY

(dotyczy wiersze 2)

Zestaw wyników pokazuje, że Joanna nie jest użytkownikiem jawny w głównej bazie danych, ale zamiast niego ma dostęp do konta gościa.Podstawowa tożsamość jej tokenu użytkownika to użytkownik Gość.Roli publicznej jest wymieniony jako pomocniczego tożsamości, ponieważ Gość element członkowski tej roli domyślnej.Tokenem użytkownika Maria w głównej bazie danych zawiera wszystkie bazy danych poziom przywileje i uprawnienia użytkownika Gość i roli publicznej.

W poniższym przykładzie utworzono konto użytkownika jawne Mary w bazie danych Sprzedaż.Ponadto użytkownik dodano do roli db_ddladmin stałej bazy danych dla tej bazy danych.Ze sprzedaży w bieżącej bazie danych uruchamia Mary SELECT * FROM sys.user_token ponownie.

Zestaw wyników mogą wyglądać podobnie do następującego:

Nazwa identyfikatora sid principal_id wpisz użycia

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

5 0x36CC4BBD1 Mary SQL USER GRANT OR DENY

Wartość 0 NULL publicznych ROLE GRANT OR DENY

16387 NULL db_ddladmin ROLE GRANT OR DENY

Ten zestaw wyników odzwierciedla tokenu użytkownika utworzone dla Mary w bazie danych Sprzedaż.Ponieważ Mary został jawnie dodany jako użytkownik w bazie danych Sprzedaż, użytkownik jest wyświetlany jako podstawowy tożsamości.Dwie role, użytkownik jest członkiem są wyświetlane jako pomocnicze tożsamości.Wystawca uwierzytelnienia tokenu użytkownika Marii jest wystąpienie SQL Server.

Przełączenie kontekstu wykonanie

W SQL Server, kontekst wykonywania sesja można jednoznacznie zmieniony przez podanie nazwy użytkownika lub logowania w wykonać AS instrukcja. Kontekst wykonywania na module, takie jak procedura przechowywana, wyzwalacza lub funkcja zdefiniowanej przez użytkownika mogą być zmieniane niejawnie przez podanie nazwy użytkownika lub logowania w wykonać AS klauzula definicji modułu.Po przełączeniu do innego użytkownika lub logowania kontekst wykonania, program SQL Server sprawdza uprawnienia wobec tokeny użytkownika i identyfikator logowania dla tego konta.W zasadzie tego konta jest uznawane przez cały czas trwania sesja lub wykonanie modułu.Aby uzyskać więcej informacji zobaczUnderstanding Context Switching.