2007-07-24

Tüm SP'lere Execute Yetkisi

SQL Server 2005 te 'Mehmet' kullanıcısı için tüm SP lere Execute yetkisini vermek için aşağıdaki T-SQL kodunu çalıştırıp çıkan sonucu copy-paste yapıp çalıştırın:

DECLARE @strUserName sysname
SET @strUserName = 'Mehmet'
SELECT 'Grant exec on [' + Routine_Schema + '].[' + Routine_Name + '] TO [' + @strUserName + ']' FROM Information_Schema.Routines WHERE Routine_Type = 'Procedure'

2 yorum:

PainKiller dedi ki...

Sistemdeki scalar fonksiyonlara ulaşabilmesi için bir kullanıcıyı eklemek zorundaydım. Araştırırken yukarıdaki gibi olabildiği gibi sys.object ile de aynı sorgunun çalışabildiğini gördüm. Ben arattırdığımda ilk açılan sayfalardan birisi burası olduğu için, benim gibi arayanlar faydalansın diye bulduğum çözümleri buraya eklemek istedim.

SELECT 'GRANT EXECUTE ON dbo.' + NAME + ' TO KullaniciAdi'
FROM sys.objects
WHERE TYPE = 'P'
ORDER BY
NAME

Yukarıda yapmış olduğunuz sorgu ile aynı şeyi döndürüyor

SELECT 'GRANT EXECUTE ON dbo.' + NAME + ' TO KullaniciAdi'
FROM sys.objects
WHERE TYPE = 'FN'

sorgusuda bize sclar fonksiyonları listeliyor.

Mehmet GÜZEL dedi ki...

PainKiller paylaşım için teşekkürler.


Aynı sonucun schema eklenmiş halini aşağıdaki sorgu ile alabilirsiniz.

select 'grant exec [' + SCHEMA_NAME(schema_id) + '].[' + name + '] to KullaniciAdi '
from sys.procedures

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.