Udostępnij za pośrednictwem


Uprawnienie SHOWPLAN i instancje Transact-SQL

A Transact-SQL Partia składa się z jednego lub więcej instrukcji.W tym temacie opisano sposób SQL Server sprawdza uprawnienia SHOWPLAN dla różnych Showplan USTAWIĆ opcje instrukcja użyto z Transact-SQL partii.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Użytkownicy, którzy mają uprawnienia SHOWPLAN, ALTER śledzenia lub stan WIDOKU serwera można wyświetlić kwerend, które są przechwytywane w produkcji Showplan.Te kwerendy mogą zawierać poufne informacje, takie jak hasła.Dlatego zaleca się tylko udzielić tych uprawnień użytkowników, którzy są uprawnieni do przeglądania informacji poufnych, takich jak członkowie db_owner ustalonego rola bazy danych lub członkami sysadmin stała rola serwera.Zalecane jest również tylko zapisać Showplan pliki lub pliki śledzenia, które zawierają zdarzenia związane z Showplan do lokalizacji, która korzysta z systemu plików NTFS i ograniczyć dostęp użytkowników, którzy są uprawnieni do przeglądania informacji poufnych.

Partie zawierające użycia lub instrukcje SET

Nie SHOWPLAN uprawnienia są sprawdzane na użycie lub zestaw sprawozdań Showplan USTAWIĆ opcje (SHOWPLAN_TEXT, SHOWPLAN_ALL, SHOWPLAN_XML, statystyki profilu lub statystyki XML).SHOWPLAN_TEXT, SHOWPLAN_ALL i SHOWPLAN_XML, które generują szacowany wykonanie planu produkcji, żaden z Transact-SQL instrukcji w partia są wykonywane, z wyjątkiem wykorzystania database_name instrukcji, które są wykonywane dla tych Showplan Ustaw opcje.

Przykłady wyboru uprawnień SHOWPLAN

Baza danych kontekstu jest zestaw w partiach za pomocą wykorzystania database_name instrukcja.Bazy danych, które zawierają obiekty, takie jak tabele lub widoki, które są określone w Transact-SQL sprawozdania są sprawdzane pod kątem uprawnienia SHOWPLAN.Jednak uprawnienie SHOWPLAN nie jest zaznaczone w kontekście baz danych, chyba że Transact-SQL instrukcja odnosi się do obiektów w bazie danych kontekstu.

Jeżeli partia zawiera USE database_name instrukcja, zmiany kontekstu bazy danych.W tym przypadek uprawnienie SHOWPLAN kontekstu bazy danych, który obowiązuje, gdy występuje instrukcja określonego w partia nie jest zaznaczone.

Na przykład w następującym partia SHOWPLAN uprawnienie jest sprawdzany na AdventureWorks2008R2 bazy danych dla obu SELECT instrukcji.Albo nie są sprawdzane uprawnienia SHOWPLAN master lub tempdb baz danych, które są określone w USE sprawozdania:

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

Sprawdza uprawnienia SHOWPLAN Dynamic SQL

  • Dla dynamicznych instrukcja SQL formularza EXEC (command_string) lub szefowie (character_string), nie SHOWPLAN uprawnienia są sprawdzane dla instrukcja w tym ciąg osadzonych.

  • Dla dynamicznych instrukcja SQL, których wykonać procedura składowana dbo.my_stored_procedure EXEC formularza Brak uprawnień SHOWPLAN jest sprawdzana pod kątem samą deklarację EXEC.Jednak ponieważ Showplan jest produkowane dla treści całej procedura składowana, baz danych, które zawierają obiekty określone w instrukcji w procedurze przechowywanej sprawdzane są uprawnienia SHOWPLAN.

Poniższy przykład pokazuje, jak SHOWPLAN uprawnienia są sprawdzane pod kątem instrukcji SQL.Dla SELECT instrukcja, uprawnienie SHOWPLAN jest sprawdzana na AdventureWorks2008R2 bazy danych.Nie SHOWPLAN uprawnienia są sprawdzane na EXEC instrukcja, tempdb bazy danych, lub na master bazy danych:

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

W poniższym przykładzie, gdzie SET STATISTICS XML jest używana, jeśli partia jest wysyłana do master bazy danych, Brak uprawnień SHOWPLAN jest sprawdzana instrukcja SET.Brak uprawnień SHOWPLAN jest sprawdzana na USE tempdb instrukcja.Jednakże ponieważ uprawnienie POŁĄCZ jest sprawdzany USE instrukcja, użytkownik musi już istnieć w tempdb bazy danych i mieć uprawnienie POŁĄCZ tempdb bazy danych.Wyszukano nie uprawnień SHOWPLAN EXEC instrukcja, ponieważ nie Showplan danych wyjściowych jest generowany przez goBrak uprawnień SHOWPLAN jest sprawdzana na USE master instrukcja.Jednak uprawnienie SHOWPLAN jest sprawdzana na AdventureWorks2008R2 bazy danych dla SELECT instrukcja:

SET STATISTICS XML ON
GO
USE tempdb
EXEC ('USE master; SELECT * FROM AdventureWorks2008R2.Person.Address');

Ostrzeżenie

Uprawnienie SHOWPLAN nie jest zaznaczone dla kwerend odwołujących się do poprzednich wersji SQL Server.Jednakże w przypadku części takich kwerend, które działają w SQL Server 2005 i później, sprawdzane jest uprawnienie SHOWPLAN.

Partie zawierające błędy

Jeśli używana jest jedna Showplan Ustaw opcje instrukcja z Transact-SQL partia daje błąd wykonania instrukcja lub błędu sprawdzania uprawnień, kontekstu bazy danych jest określana w następujący sposób w zależności od opcji zestaw jest używany tryb:

  • SHOWPLAN_TEXT, SHOWPLAN_ALL i SHOWPLAN_XML

    Kontekst bazy danych, będący w mocy przed partia wykonanie uruchomiona pozostaje w mocy.Nie Showplan danych wyjściowych jest generowany dla całej partia, jeśli wystąpią błędy wyboru uprawnienia lub wykonanie instrukcja.Wszystkie uprawnienia i instrukcje wykonać musi pomyślnie lub nie Showplan danych wyjściowych jest produkowany.

  • Profil statystyki i statystyki XML

    Baza danych kontekstu, który obowiązywał w momencie ostatniej instrukcja została wykonana pomyślnie, pozostają w mocy.SHOWPLAN wyjściowy jest generowany dla każdej instrukcji w partia, gdzie instrukcja wykonana pomyślnie i kontroli uprawnień zakończyła się pomyślnie.SHOWPLAN wyjściowy jest produkowany każdej instrukcja w partia, która wykonuje pomyślnie i dla których uprawnienia testy zakończą się pomyślnie.

Zobacz także

Koncepcje