Showplan güvenlik
Showplan yürütme planı bilgileri tarafından çeşitli şekillerde üretilebilecek.Kullanabileceğiniz Transact-SQL deyim seçenekleri AYARLAMAK SQL Server Profiler olay sınıflarını veya sorgulama dinamik yönetim işlev sys.dm_exec_query_plan.Her yöntem aşağıdaki bölümlerde açıklanan izinleri, farklı küme gerektirir.showplan izin için nasıl denetlenir hakkında daha fazla bilgi için Transact-SQL , toplu işlemlerini görmek showplan izin ve Transact-SQL toplu işlemleri.
Not
Zaman bir SQL Server veritabanı uyumluluk düzey küme için 80 kullanarak sp_dbcmptlevel saklı yordam geçerli showplan izni hala geçerlidir.Uyumluluk ayarı düzey için 80 Microsoft Showplan izinleri davranışını üretmek SQL Server 2000.
showplan izin hakkında
Çoğu Showplan kullanarak yürütme planı çıktı üretmek için Transact-SQL seçeneklerini ayarlama, kullanıcı olması gerekir:
İçin de başvurulan nesneleri içeren veritabanları üzerinde showplan izin Transact-SQL görünümleri gibi deyim saklı yordamları veya kullanıcı tanımlı işlevler.
Yürütmek için gerekli izni Transact-SQL kendini deyim.
Gü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.
Örneğin, aşağıdaki sorgu göz önünde bulundurun:
SELECT COUNT(*)
FROM table_1
WHERE column_1 < 10
Kötü niyetli bir kullanıcı için Showplan çıkış üretir, bir küme , aşağıdaki örnekte olduğu gibi sorgular ve "10" değerini değiştirir ifadede her farklı sabitler ile saat, kullanıcı bir sütun değerleri yaklaşık veri dağıtım gerçekleştirip Sütun_1 , table_1 okuyarak tahmini satır sayar.
showplan izin veritabanı - olandüzey izni olan:
, Reddedilen veya iptal edilen yalnızca aşağıdaki kullanıcılar tarafından verilebilir:
Üyeleri sysadmin sabit sunucu rolü.Varsayılan olarak, bu sabit sunucu rolü üyelerinin tümüne Server veritabanları üzerinde showplan iznine sahip.
Üyeleri dbcreator sabit sunucu rolü oluşturabilir ve böylece kendi veritabanları için.Varsayılan olarak, bu sabit sunucu rolü üyelerinin tümüne oluşturabilir ve böylece kendi veritabanı üzerinde showplan iznine sahip.
Üyeleri db_owners sahip oldukları veritabanları için sabit veritabanı rolü.Varsayılan olarak, bu sabit veritabanı rolü üyelerinin tümüne sahip oldukları veritabanları üzerinde showplan iznine sahip.
Sahiplik zincirleme bağlanmasını destekler.Zaman sahiplik zinciri olan kırık, izni yeniden sonu oluştuğu düğüm denetlenir.showplan izni veritabanı düzey izni olduğundan, iki veya daha fazla veritabanı nesnelerinde sorguların başvuru yaptığınızda ancak bu denetim yalnızca oluşur.Sahipliği zincir oluşturma hakkında daha fazla bilgi için bkz: Sahiplik Chains.
Vermek, reddetme veya showplan iznini geri almak için kullanılan sözdizimi hakkında daha fazla bilgi için bkz: Verme, reddetme ve showplan iznini iptal etme için sözdizimi.
Örnek
Kullanıcı1, create table, INSERT ve select izinleri varsa ve he tablo oluşturur t (he tablo sahibi olan) veritabanında d, tabloya satırlar ekler ve sorguyu yürütür başarıyla bir seçme sorgusu tablo üzerinde yazar.Ancak, Kullanıcı1'e kadar he veritabanı üzerinde showplan izin verilen bir Showplan üretmek mümkün değil d.
Uyarı
Önceki örnekte, o veritabanı varsayalım d görünümü içeren v Kullanıcı1 select izni olduğu.Kullanıcı1 showplan izni verildikten sonra d, kendisine ait olmayan, ancak v, kendisine bir Showplan için getirdiği bir sorguyu oluşturabilirsiniz v.Görünüm tanımını görmek ona bu Showplan sağlayan vtablolar ve görünümler üzerinde v dayanır.Ancak, v tarafından Kullanıcı1'e ait ve farklı bir veritabanında var, bir tablo gibi bir nesne içeren D2, ve Kullanıcı1 sahibi D2, showplan iznini D2 teslim ve gerekli.
Kullanım Showplan set seçenekleri için gerekli izinler
Aşağıda, çeşitli Showplan set bildirimi seçenekleri kullanmak için gerekli izinler listelenir tablo:
Showplan set seçenekleri |
Gerekli izinler |
---|---|
SET SHOWPLAN_XML ON SET SHOWPLAN_ALL EDER SET SHOWPLAN_TEXT EDER |
select, INSERT, update, delete, exec için stored_prodedureve exec user_defined_function deyimlerini, aşağıdaki izinleri bir Showplan üretmek için gereken:
Tüm diğer deyimleri ddl, kullanımı gibi için database_name, set, declare, dinamik Transact-SQLve benzeri, yalnızca yürütmek için uygun izinleri Transact-SQL deyim gerekiyor.Daha fazla bilgi için bkz: showplan izin ve Transact-SQL toplu işlemleri. |
İSTATİSTİK XML EDER İSTATİSTİK PROFİLİ ÜZERİNDE |
İçin Transact-SQL İSTATİSTİKLERİ PROFİL veya xml İSTATİSTİKLERİ üretmek ifadeleri sonuç kümeleri, yalnızca yürütmek için uygun izinleri Transact-SQL ifadeleri gereklidir.İçin Transact-SQL İSTATİSTİKLERİ PROFİL veya istatistik xml sonuç üreten ifadeleri ayarlar, her ikisi için de bakar Transact-SQL deyim yürütme ve showplan izni gerekir başarılı olması, ya da Transact-SQL deyim yürütme iptal edildi ve hiçbir Showplan bilgileri üretilir.Kendisi hakkında bilgi için Transact-SQL deyimlerinin Showplan bilgi üretmek, bkz: Showplans üretmek transact-SQL deyimleri. |
İSTATİSTİK ZAMAN SET İSTATİSTİKLERİ GÇ |
Bu set hiçbiri deyim seçenekleri denetleyin veya showplan izni gerektirir. |
showplan izin ne zaman denetlenir?
showplan iznini işaretli olduğunda bir Transact-SQL deyim veya toplu iş iş yürütür ve Showplan bilgileri üretilir.Showplan küme seçenek on olarak ayarlandığında onay oluşmaz.
Not
İçerik veritabanı için bir Transact-SQL toplu iş iş küme bir kullanımı <database_name> deyim.showplan iznini kullanmak üzere teslim <database_name> ifadeleri ve içerik veritabanı. üzerinde işaretli değilse
Showplan set hakkında daha fazla bilgi için deyim seçenekler, aşağıdaki konulara bakın:
sql Server Management Studio'yu kullanarak grafik yürütme planları görüntülemek için izinleri gerekir.
sql Server Management Studio'da grafik yürütme planları görüntülemek için gereken izinleri aşağıdaki listelenen tablo:
Management Studio Execution Plan seçeneği |
Gerekli izinler |
---|---|
Yürütme planı görüntü tahmini |
set showplan_xml deyim seçeneği kullanmak için gerekli aynı izinleri gerektirir. |
Fiili yürütme planı dahil |
Aynı xml İSTATİSTİKLERİ KÜMESİ kullanmak için gerekli izinleri gerektirir deyim seçeneği |
Daha fazla bilgi için bkz: Grafik yürütme görüntüleme (SQL Server Management Studio'yu) planları.
sql Server Profiler olay sınıfları kullanarak görüntü yürütme planları için gerekli izinler
Kullanarak yürütme planları görüntülemek için SQL Server Profiler olay sınıflarını, kullanıcıların üye olmalıdır sysadmin sabit sunucu rolü veya alter trace izni verilmiş.showplan izin işaretlenmemiş olduğundan ne de onu gereklidir.
Daha fazla bilgi için bkz: SQL Server Profiler olay sınıfları kullanarak planları yürütme görüntüleme.
Sys.dm_exec_query_plan dinamik yönetimi işlevini kullanarak görüntü yürütme planları için gerekli izinler
Kullanarak yürütme planları görüntülemek için sys.dm_exec_query_plan dinamik yönetim işlev, kullanıcıların yalnızca görünüm server state izni verilmelidir.
Daha fazla bilgi için bkz: sys.dm_exec_query_plan (Transact-sql).