Aracılığıyla paylaş


showplan izin ve Transact-SQL toplu işlemleri

A Transact-SQL toplu iş iş oluşan, bir veya birden çok deyimleri.Bu konuda açıklar nasıl SQL Server Showplan set çeşitli deyim seçenekleri bunlar ile kullanıldığında showplan iznini denetler Transact-SQL toplu işlemleri.

Güvenlik notuGüvenlik Notu

showplan, alter trace veya Görünüm server state iznine sahip kullanıcılar yakalanan sorgu Showplan çıktısında görebilirsiniz.Bu sorgular, parolalar gibi önemli bilgiler içerebilir.Bu nedenle, yalnızca bu üyeleri gibi hassas bilgileri görüntülemek için yetkili kullanıcılar için izinleri olmasını öneririz db_owner sabit veritabanı rolü veya üyeleri sysadmin sabit sunucu rolü.Yalnızca Showplan dosyaları içeren veya ntfs dosya sistemini kullanan bir konuma Showplan güvenlikle ilgili olayları izleme dosyaları kaydedin ve önemli bilgileri görüntüleme yetkisi olan kullanıcılara erişimi kısıtlamak öneririz.

Kullanım veya set ifadeleri içeren toplu işleri

Showplan set seçenekleri (showplan_text, showplan_all, showplan_xml, İSTATİSTİKLERİ PROFİL veya istatistik xml) için kullanın ya da set ifadeleri üzerinde hiçbir showplan izin denetimleri gerçekleştirilmez.Kendi, showplan_text, showplan_all ve showplan_xml tahmini yürütme planı çıktı, hiçbiri üretmek Transact-SQL toplu iş deyimleri çalıştırılır, kullanımı dışında database_name için yürütülen deyimleribu Showplan set seçenekleri.

showplan izin onay örnekler

İçerik veritabanı kullanımı kullanarak toplu olarak küme database_name deyim.Tablo ya da için de başvurulan görünümleri gibi nesneleri içeren veritabanlarını Transact-SQL için checked ifadelershowplan izin. Ancak, showplan iznini içerik veritabanlarını sürece işaretli değilse Transact-SQL deyim başvuran nesnelere içerik veritabanı.

BİR toplu iş içeriyorsa, database_name deyim, içerik veritabanı değişiklikleri.Bu durumda, showplan izin belirli bir zaman yürürlükte olan içerik için veritabanı denetlenir değil deyim toplu iş iş işleminde ortaya çıkar.

Örneğin, aşağıdaki toplu iş iş showplan izni üzerinde işaretli AdventureWorks2008R2 veritabanı için her ikisi de SELECT deyimleri.showplan izin üzerinde işaretli değilse master veya tempdb veritabanları, olduğu bilinir de USE deyimleri:

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

Dinamik sql showplan iznini denetler

  • Dinamik SQL deyims formun exec (command_string) veya exec (character_string), için hiçbir showplan izinleri denetimleri gerçekleştirilmez deyim, katıştırılmış dize. dahil olmak üzere

  • Dinamik sql deyimleri yürütmek için bir saklı yordam form exec dbo.my_stored_procedure exec deyim kendisi için showplan izin yok denetlenir.Ancak, bir Showplan saklı yordamın tamamını gövdesi için üretilen çünkü saklı yordam içindeki deyimleri tarafından başvurulan nesneleri içeren veritabanları için showplan izin denetlenir.

showplan izinleri için dinamik sql deyimleri nasıl denetlenir aşağıdaki örnekte gösterilmektedir.İçin SELECT deyim, showplan iznini işaretli bulunan AdventureWorks2008R2 veritabanı.Üzerinde hiçbir showplan izin denetimleri gerçekleştirilmez EXEC , kendisini deyim tempdb , veritabanı veya master Veritabanı:

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

Aşağıdaki örnekte, burada SET STATISTICS XML toplu iş iş gönderilirse, kullanılan master veritabanı, showplan izin yok denetlenir set deyim.showplan izin yok üzerinde kontrol USE tempdb deyim.Ancak, connect izni için denetimli olduğundan USE deyim, kullanıcı gerekir zaten tempdb veritabanı ve bağlanma izniniz tempdb veritabanı.showplan izin yok için teslim EXEC deyim hiçbir Showplan çıkış it. tarafından üretildiğindenshowplan izin yok üzerinde kontrol USE master deyim.Üzerinde showplan izni ancak, teslim AdventureWorks2008R2 için veritabanı SELECT deyim:

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

Not

Önceki sürümleri başvuran sorgular için showplan izin denetlenir SQL Server.Ancak, bölümleri gibi sorguları çalıştırmak için SQL Server 2005 ve showplan izni daha sonra iade.

Hata içeren toplu işleri

Showplan set bildirimi seçenekleri biri ile kullanılıyorsa, bir Transact-SQL üreten bir deyim yürütme hatası veya izin onay hatası, içerik veritabanını toplu iş modu hangi Ayarla seçeneği belirlediğinize bağlı olarak aşağıdaki gibi kullanılır belirledi:

  • showplan_text, showplan_all ve showplan_xml

    Toplu iş yürütme başladı önce yürürlükte olan içerik veritabanını etkin kalır.deyim yürütme veya izin onay hatalar oluşursa için tüm toplu iş iş Showplan çıktı oluşturulur.Tüm izin denetimleri ve ifadeleri gerekir yürütmek başarılı bir şekilde, ya da hiçbir Showplan çıktı üretilir.

  • İSTATİSTİKLERİ profili ve İSTATİSTİKLERİ xml

    Yürürlükte olan içerik veritabanı, son deyim başarıyla yürütülen etkin kalır.Showplan çıkış nerede deyim başarıyla yürütüldü toplu iş iş ve başarılı izin denetimleri her tablo için oluşturulur.Showplan çıktı her biri için üretilmiş deyim başarıyla yürütür toplu ve hangi izin denetimleri başarılı.

Ayrıca bkz.

Kavramlar