Sistem nesne izinleri (Transact-SQL) deny
Saklı yordamlar, genişletilmiş saklı yordamları, işlevleri ve görünümler gibi sistem nesnelerinin izinlerini reddeder.
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.
![]() |
---|
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