Udostępnij za pośrednictwem


SHOWPLAN Permission and Transact-SQL Batches

A Transact-SQL partia składa się z jedną lub więcej instrukcji. W tym temacie opisano, w jaki sposób SQL Server sprawdza uprawnienia plan wykonania dla różnych opcji instrukcja zestaw plan wykonania, gdy są one używane przez Transact-SQL instancje.

Security noteSecurity Note:

Użytkownicy, którzy mają uprawnienia do plan wykonania i ALTER TRACE VIEW SERVER STATE mogą przeglądać kwerendy, które są przechwytywane w danych wyjściowych plan wykonania.Te kwerendy mogą zawierać poufne informacje, takie jak hasła.Dlatego zaleca się tylko udzielić tych uprawnień użytkownikom, którzy są uprawnieni do wyświetlania informacji poufnych, takich jak członkowie db_owner stałe rola bazy danych lub członkowie sysadmin ustalić roli serwera.Zalecane jest również tylko zapisać plan wykonania plików lub plików śledzenia, które zawierają plan wykonania zdarzeń do lokalizacji, która korzysta z systemu plików NTFS i ograniczyć dostęp dla użytkowników, którzy są uprawnieni do wyświetlania ważnych informacji.

Partie zawierającej instrukcji zestaw lub użycia

Nie plan wykonania uprawnienia są sprawdzane w deklaracjach USE lub zestaw dla opcji zestaw plan wykonania (SHOWPLAN_TEXT, SHOWPLAN_ALL, SHOWPLAN_XML, Statystyka profilu lub STATISTICS XML).SHOWPLAN_TEXT SHOWPLAN_ALL i SHOWPLAN_XML, które generuje szacowany wykonanie planu produkcji, żaden z Transact-SQL instrukcje w partia są wykonywane, z wyjątkiem USE database_name instrukcje, które są wykonywane na temat tych opcji plan wykonania zestaw.

Przykłady sprawdzania uprawnień plan wykonania

Kontekst bazy danych jest ustawiony w plikach wsadowych za pomocą USE database_name Instrukcja. Bazy danych, które zawierają obiekty, takie jak tabele i widoki, które są określone w Transact-SQL instrukcje są sprawdzane uprawnienia plan wykonania. Jednak uprawnienia plan wykonania nie jest zaznaczone w kontekście baz danych, chyba że Transact-SQL Instrukcja odnosi się do obiektów w bazie danych kontekstu.

Jeśli zadanie partia zawiera USE database_name Instrukcja zmiany kontekstu w bazie danych. W tym przypadek uprawnienie plan wykonania nie jest zaznaczone dla kontekstu bazy danych, która obowiązuje przypadek wystąpienia określonej instrukcja w partia.

Na przykład w następujących zadań wsadowych plan wykonania uprawnień jest sprawdzany na AdventureWorks bazy danych dla obu instrukcji SELECT.Uprawnienie plan wykonania nie jest zaznaczone na jednym wzorzec or the tempdb baz danych, określone w instrukcjach USE:

SET SHOWPLAN_XML ON
GO
USE tempdb
SELECT * FROM AdventureWorks.Person.Address
USE master
SELECT * FROM AdventureWorks.Person.Address
GO

Sprawdzanie uprawnień plan wykonania dla dynamicznego SQL

  • Dla dynamicznych instrukcja SQL formularza EXEC)command_string) lub () EXECcharacter_string), nie plan wykonania uprawnienia są sprawdzane dla instrukcja, łącznie z osadzonego ciąg.

  • Dla dynamicznych instrukcja SQL wykonaj procedura przechowywana z formularza dbo.my_stored_procedure EXEC uprawnienie plan wykonać nie jest sprawdzana pod kątem samą deklarację EXEC.Jednak ponieważ plan wykonania jest produkowany jednostka całą procedura przechowywana, baz danych, które zawierają obiekty, o których mowa w instrukcji w procedurze przechowywanej są sprawdzane uprawnienia plan wykonania.

W poniższym przykładzie pokazano, w jaki sposób są sprawdzane uprawnienia plan wykonania dla dynamicznych instrukcji SQL.Dla instrukcja SELECT uprawnienie plan wykonania jest sprawdzany na AdventureWorks Baza danych. Nie plan wykonania uprawnienia są sprawdzane instrukcja EXEC tempdb Baza danych, lub na master Baza danych:

SET SHOWPLAN_XML ON
GO
USE tempdb
EXEC ('USE master; SELECT * FROM AdventureWorks.Person.Address');

W poniższym przykładzie, w których zestaw STATISTICS XML jest używany, jeśli do partia master Baza danych, nie uprawnień plan wykonania jest sprawdzany na instrukcja zestaw. Nie uprawnień plan wykonania jest sprawdzany na USE tempdb Instrukcja. Jednakże, ponieważ uprawnienie CONNECT jest sprawdzana pod kątem użycia instrukcja, użytkownik musi już istnieć w tempdb bazy danych i mieć uprawnienie CONNECT tempdb Baza danych. Uprawnienia nie plan wykonania jest sprawdzana pod kątem instrukcja EXEC, ponieważ nie dane wyjściowe plan wykonania generowany jest przez nią.Nie uprawnień plan wykonania jest sprawdzany na USE master Instrukcja. Jednak uprawnienia plan wykonania jest sprawdzany na AdventureWorks Baza danych dla instrukcja SELECT:

SET STATISTICS XML ON
GO
USE tempdb
EXEC ('USE master; SELECT * FROM AdventureWorks.Person.Address');
Security noteSecurity Note:

Uprawnienie plan wykonania nie jest zaznaczone dla kwerend odwołujących się do poprzednich wersji SQL Server. Jednak w takich częściach kwerendy uruchamianych na SQL Server 2005 a później, sprawdzone uprawnienie plan wykonania.

Partie zawiera błędy

Jeśli używany jest jedną z opcji instrukcja zestaw plan wykonania z Transact-SQL partia daje błąd wykonywanie instrukcja lub na błąd wyboru uprawnień, kontekstu bazy danych jest określana w następujący sposób w zależności od opcji zestaw używany jest tryb:

  • SHOWPLAN_TEXT SHOWPLAN_ALL i SHOWPLAN_XML

    Kontekst bazy danych, które obowiązywały przed rozpoczęciem wykonywania zadań wsadowych pozostają w mocy.Nie danych wyjściowych plan wykonania jest generowany dla całej partia, jeśli wystąpią błędy wyboru uprawnienia lub wykonanie instrukcja.Wszystkie uprawnienia i instrukcje musi wykonać pomyślnie, lub dane wyjściowe nie plan wykonania jest produkowany.

  • Statystyka profilu i STATISTICS XML

    Baza danych kontekstu, który obowiązywał w momencie ostatniego wyciągu została wykonana pomyślnie, pozostają w mocy.Dane wyjściowe plan wykonania jest generowana dla każdej instrukcji partia, gdzie instrukcja wykonana pomyślnie i kontroli uprawnień zakończyła się pomyślnie.Dane wyjściowe plan wykonania jest tworzone dla każdej instrukcja partia, który wykonuje pomyślnie i dla których uprawnienia kontroli powiodła się.

Historia zmian

Microsoft Learning

Dodać notatki zabezpieczeń dotyczących ochrony informacji poufnych, które mogą być wyświetlane w plikach plan wykonania lub plików śledzenia.

See Also

Concepts