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:

  1. 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.

    YanıtlaSil
  2. 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

    YanıtlaSil

Lütfen yorumlarınızda Ad Soyad ve Web sayfanızın adresini girelim!