Aracılığıyla paylaş


Sistem nesne izinleri (Transact-SQL) deny

Saklı yordamlar, genişletilmiş saklı yordamları, işlevleri ve görünümler gibi sistem nesnelerinin izinlerini reddeder.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

DENY { SELECT | EXECUTE } ON [ sys.]system_object TO principal 

Bağımsız değişkenler

  • [ sys.]
    Sysyalnızca, katalog görünümleri ve dinamik yönetimi görünümleri yaparkenniteleyici gereklidir.

  • system_object
    İzin engellendi nesneyi belirtir.

  • principal
    Sorumlusunun izni iptal olduğunu belirtir.

Açıklamalar

Belirli saklı yordamlar, genişletilmiş saklı yordamlar, tabloizinleri reddetmek için bu deyim kullanılabilir-işlevleri, skaler işlevleri, görünümler, katalog görünümleri, uyumluluk görünümleri, INFORMATION_SCHEMA görünümleri, dinamik yönetimi görünümleri ve tarafından yüklenen sistem tabloları değerli SQL Server.Bu sistem nesnelerin her biri kaynak veritabanındaki benzersiz kayıt olarak bulunmaktadır (mssqlsystemresource).kaynak veritabanı salt okunur durumdadır.Nesneye bağlantı kayıt olarak sunulup sys her veritabanı şeması.

Varsayılan ad çözümlemesi, kaynak veritabanını nitelenmemiş yordamı adlarını çözümler.Bu nedenle, sys niteleyici ise yalnızca katalog görünümleri ve dinamik yönetimi görünümleri belirtirken gerekli.

Dikkat notuDikkat

Sistem nesneleri izinlerini reddetme başarısız bunlara bağımlı uygulamaların neden olur.SQL Server Management Studiokatalog görünümleri kullanır ve Mayıs katalog görünümlerivarsayılan izinlerini değiştirirseniz, beklendiği gibi değil işlev .

Tetikleyiciler ve sütunları sistem nesnelerinin izinlerini reddetme desteklenmiyor.

Yükseltme sırasında sistem nesnelerinde izinleri korunmuş SQL Server.

Sistem nesneleri görünür sys.system_objects Katalog görünümü.Sistem nesneleri izinlerini şuralarda sys.database_permissions katalog görünümünde ana veritabanı.

Aşağıdaki sorgu sistem nesnelerinin izinlerini hakkında bilgi verir:

SELECT * FROM master.sys.database_permissions AS dp 
    JOIN sys.system_objects AS so
    ON dp.major_id = so.object_id
    WHERE dp.class = 1 AND so.parent_object_id = 0 ;
GO

İzinler

control server izni gerektirir.

Örnekler

Aşağıdaki örnek vermez EXECUTE izni xp_cmdshell için public.

DENY EXECUTE ON sys.xp_cmdshell TO public;
GO