Aracılığıyla paylaş


Özel bir izin kümesi oluşturmak için yürütmek AS kullanma

Bir yürütme içeriği bir modülü için özel izinleri tanımlamak için çok yararlı olabilir belirleyen ayarlar.Örneğin, TRUNCATE tablo gibi bazı eylemler grantable izinleriniz yeterli değil.TRUNCATE tablo'ı çalıştırmak için , kullanıcı ALTER belirtilen tabloyu izinleriniz olmalıdır.Kullanıcı izinleri de bir tabloda bir kesecek şekilde yeteneği ötesinde etkin karşılaşacağından kullanıcı tablo ALTER izinlerini vermek ideal olmayabilir.

TRUNCATE tablo deyim içinde bir modülü ve bu modül tabloyu değiştirmek için gerekli izinlere sahip bir kullanıcı olarak Çalıştır'ı belirten kullanýlmasýyla, izinleri modülü yürütmek izinleri vermek Kullanıcı tabloya kesecek şekilde genişletebilirsiniz.

Bu saklı yordam göz önünde bulundurun:

CREATE PROCEDURE TruncateMyTable
WITH EXECUTE AS SELF
AS TRUNCATE TABLE MyDB..MyTable;

Bu yordam Mary oluşturur ve üzerinde yürütmek izinleri verir TruncateMyTable Scott için. Scott saklı yordam çalıştırıldığında Database Engine izinler, Mary saklı yordamı yürütme, tablo kesecek şekilde doğrular. Filiz, tablonun sahibi olduğu için Scott, tablo üzerinde doğrudan izin olmasına karşın deyim başarılı olur.Mary hızlı ve etkili izinleri için Filiz, kendisine görev gerçekleştirmek için gerekenden daha fazla izin vermeden istedi Scott genişletilmiş.