Aracılığıyla paylaş


Sistem nesne izinleri (Transact-SQL)

Genişletilmiş saklı yordamları, işlevleri ve görünümler saklı yordamlar gibi sistem nesnelerine izin verir.

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

Sözdizimi

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

Bağımsız değişkenler

  • [ sys.] .
    Yalnızca katalog görünümleri ve dinamik yönetimi görünümleri için başvuran zamansysniteleyici gereklidir.

  • system_object
    İzin verilen nesneyi belirtir.

  • principal
    İzni verilmiş asıl adı belirtir.

Açıklamalar

Bu deyim izinleri belirli saklı yordamlar, genişletilmiş saklı yordamlar, tabloiçin 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 benzersiz bir kayıt sunucusunun kaynak veritabanı olarak bulunmaktadır (mssqlsystemresource).kaynak veritabanı salt okunur durumdadır.Nesneye bağlantı kayıt olarak sunulup sys şeması, her veritabanı.yürütmek veya bir sistem nesnesi verilebilir, select izni engellendi ve iptal edildi.

yürütmek veya nesneyi mutlaka nesne kullanmak için gereken tüm izinleri ilettiğinizden seçin izin veriyor.Nesnelerin çoğu ek izinler gerekli işlemleri gerçekleştirir.Örneğin, üzerinde execute izni verilen kullanıcı sp_addlinkedserver bağlantılı sunucu kullanıcı üye olmadıkça oluşturamazsınız sysadmin sabit sunucu rolü.

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.

Tetikleyiciler ve sütunları sistem nesnelerinin izinlerini verme desteklenmez.

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 master 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.Bir görünümde select izni verme

Aşağıdaki örnek verir SQL Server login Sylvester1 listelendiği bir görünümü seçmek için izin SQL Server oturumları.Örnek sonra meta veriler görüntülemek için gereken ek izin verir SQL Server oturumları, sahibi olmayan kullanıcı.

USE AdventureWorks2008R2;
GRANT SELECT ON sys.sql_logins TO Sylvester1;
GRANT VIEW SERVER STATE to Sylvester1;
GO

B.Bir genişletilmiş saklı yordamüzerinde execute izni verme

Aşağıdaki örnek verir EXECUTE izni xp_readmail için Sylvester1.

GRANT EXECUTE ON xp_readmail TO Sylvester1;
GO