sp_setapprole (Transact-sql)

Uygulama rolü geçerli veritabanında ilişkili izinleri etkinleştirir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sp_setapprole [ @rolename = ] 'role',
    [ @password = ] { encrypt N'password' } 
      |
        'password' [ , [ @encrypt = ] { 'none' | 'odbc' } ]
        [ , [ @fCreateCookie = ] true | false ]
    [ , [ @cookie = ] @cookie OUTPUT ]

Bağımsız değişkenler

  • @rolename = 'role'
    Geçerli veritabanı içinde tanımlanan uygulama rolünü addır. roleise sysname, hiçbir varsayılan ile. rolegeçerli veritabanında bulunması gerekir.

  • @password = {şifrelemek n'password' }
    Uygulama rolünü etkinleştirmek için gerekli parola değil. passwordise sysname, hiçbir varsayılan ile. passwordodbc kullanarak karartılmış şifrelemek işlevi. Kullandığınızda şifrelemek işlevi, parola koyarak bir Unicode dize dönüştürülmelidir n önce ilk tırnak işareti.

    Kullandığınız bağlantı şifrele seçeneği desteklenmiyor SqlClient.

    Önemli notÖnemli

    odbc şifrelemek işlevi şifreleme sağlamaz. Ağ üzerinden aktarılan parolaları korumak üzere bu işlev güvenmemelisiniz. Bu bilgileri bir ağ üzerinden aktarılan, ssl veya IPSec kullanın.

  • şifrele = 'none'
    Hiçbir gizleme kullanıldığını belirtir. Parola geçer SQL Serverdüz metin olarak. Varsayılan değer budur.

  • @ şifrelemek'odbc' =
    odbc odbc kullanarak parola karartan belirtir şifrelemek işlevi parola göndermeden önce SQL Server Veritabanı Altyapısı. Yalnızca, bir odbc istemci veya ole db sağlayıcı için SQL Server kullanırken bu belirtilebilir.

  • @ fCreateCookie =true | yanlış
    Çerez oluşturulan olup olmadığını belirtir. gerçek 1 örtülü olarak dönüştürülür. yanlış 0'a örtülü olarak dönüştürülür.

  • @cookie =@ tanımlama bilgisi çıktı
    Tanımlama bilgisi içeren bir çıkış parametresi belirtir. Tanımlama bilgisi yalnızca oluşturulan değeri @ fCreateCookie olan gerçek. varbinary(8000)

    [!NOT]

    Çerez OUTPUTparametresi sp_setapproleŞu anda olarak belgelenen varbinary(8000)doğru en fazla uzunluk olan. Ancak geçerli uygulama döndürür varbinary(50). Uygulamalar devam ayrılacak varbinary(8000)böylece çerez boyutu artar bir sürümde dönerseniz düzgün çalışması uygulama devam ediyor.

Dönüş Kodu Değerleri

0 (başarılı) ve 1 (hata)

Açıklamalar

Sonra uygulama rolünü kullanarak devreye sp_setapprole, kullanıcının sunucu bağlantısını keser veya yürütür kadar rolü etkin kalır sp_unsetapprole. sp_setapprole sadece doğrudan tarafından yürütülebilecek Transact-SQLdeyimleri. sp_setapprole başka bir saklı yordam veya kullanıcı tanımlı bir işlem içinde yürütülemiyor.

Uygulama rolleri genel bakış için bkz: Uygulama rolleri.

Güvenlik notuGüvenlik Notu

Ağ üzerinden iletilirken uygulama rol parola korumak için her zaman şifreli bağlantı uygulama rolü etkinleştirirken kullanmalısınız.

Microsoftodbc şifrelemek seçeneği tarafından desteklenen SqlClient. Kimlik bilgileri saklamanız gerekir, onları Kripto API işlevleri ile şifrelemek. Parametre passwordtek yönlü bir karma değeri olarak depolanır. Önceki sürümleriyle uyumluluğu korumak için SQL Server, parola karmaşıklık ilkesini tarafından zorlanmaz sp_addapprole. Parola karmaşıklık ilkesini zorlamak için Oluşturma uygulama rol.

İzinler

Üyelik Genel ve rol için parolası hakkında bilgi.

Örnekler

A.Bir uygulama rol şifrele seçeneği olmadan etkinleştirme

Aşağıdaki örnek adlı bir uygulama rolünü etkinleştirir SalesAppRole, düz metin parolası ile AsDeF00MbXX, geçerli kullanıcı tarafından kullanılan uygulama için özel olarak tasarlanmış izinlerle yaratıldı.

EXEC sp_setapprole 'SalesApprole', 'AsDeF00MbXX';
GO

EXEC sp_setapprole 'SalesApprole', 'AsDeF00MbXX';
GO

B.Bir uygulama rol ile tanımlama bilgisi etkinleştirme ve sonra özgün içerik dönüştürme

Aşağıdaki örnek etkinleştirir Sales11uygulama rol parola ile fdsd896#gfdbfdkjgh700mMve bir çerez oluşturur. Örnek, geçerli kullanıcı adını döndürür ve sonra özgün içeriğe yürüterek döner sp_unsetapprole.

DECLARE @cookie varbinary(8000);
EXEC sp_setapprole 'Sales11', 'fdsd896#gfdbfdkjgh700mM'
    , @fCreateCookie = true, @cookie = @cookie OUTPUT;
-- The application role is now active.
SELECT USER_NAME();
-- This will return the name of the application role, Sales11.
EXEC sp_unsetapprole @cookie;
-- The application role is no longer active.
-- The original context has now been restored.
GO
SELECT USER_NAME();
-- This will return the name of the original user. 
GO 

DECLARE @cookie varbinary(8000);
EXEC sp_setapprole 'Sales11', 'fdsd896#gfdbfdkjgh700mM'
    , @fCreateCookie = true, @cookie = @cookie OUTPUT;
-- The application role is now active.
SELECT USER_NAME();
-- This will return the name of the application role, Sales11.
EXEC sp_unsetapprole @cookie;
-- The application role is no longer active.
-- The original context has now been restored.
GO
SELECT USER_NAME();
-- This will return the name of the original user. 
GO 

Ayrıca bkz.

Başvuru

Sistem saklı yordamları (Transact-sql)

Güvenlik depolanan yordamlar (Transact-sql)

UYGULAMA rolü (Transact-sql) oluşturma

UYGULAMA rolü (Transact-sql) bırak

sp_unsetapprole (Transact-sql)