sp_setapprole (Transact-SQL)
Geçerli veritabanındaki uygulama rolü ile ilişkili izinleri etkinleştirir.
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'
Is the name of the application role defined in the current database.role is sysname, with no default.role must exist in the current database.[ @password = ] { encrypt N'password' }
Is the password required to activate the application role.password is sysname, with no default.password can be obfuscated by using the ODBC encrypt function.Kullandığınızda Şifreleme işlev girerek bir Unicode dizesi için parolayı dönüştürülmelin önce ilk tırnak işareti.Kullandığınız bağlantılarda encrypt seçeneği desteklenmiyor. SqlClient.
Important Note:
ODBC Şifreleme işlev, şifreleme sağlamaz.Bu işlev, bir ağ üzerinden iletilen parolaları korumak üzere güvenmemelisiniz.Bu bilgileri ağ üzerinden aktarılan SSL veya IPSec kullanın.
Encrypt = 'none'
Hiçbir gizleme hile şaka kullanıldığını belirtir.Parolayı geçirilir SQL Server düz metin olarak. Varsayılan değer budur.@encrypt= 'odbc'
ODBC parolası ODBC kullanarak karartan, belirtir. Şifreleme önce parolayı göndermek için işlevSQL Server Database Engine. Bu durum yalnızca, bir ODBC istemcisi'ni veya OLE DB sağlayıcı SQL Server için kullandığınız sırada belirtilebilir.[ @fCreateCookie = ] true | false
Specifies whether a cookie is to be created.true is implicitly converted to 1.false is implicitly converted to 0.[ @cookie = ] @cookie OUTPUT
Tanımlama bilgisini içeren bir çıkış parametresi belirtir.The cookie is generated only if the value of @fCreateCookie is true.varbinary(8000)
Dönüş Kodu Değerleri
0 (başarılı) ve 1 (hata)
Remarks
After an application role is activated by using sp_setapprole, the role remains active until the user either disconnects from the server or executes sp_unsetapprole.sp_setapprole can be executed only by direct Transact-SQL statements.sp_setapprole cannot be executed within another stored procedure or within a user-defined transaction.
Uygulama rolleri genel bakış için bkz: Uygulama rolleri.
![]() |
---|
Ağ üzerinden iletilirken, uygulama rolü parolayı korumak için her zaman şifrelenmiş bir bağlantı uygulama rolü etkinleştirirken kullanmalısınız The Microsoft ODBC encrypt option is not supported by SqlClient.Kimlik bilgileri saklamanız gerekir, bunları şifreleme APı'SI işlevleriyle şifreleyin.Parametre password tek yönlü bir karması saklanır. ' Ün önceki sürümüyle olan uyumluluğu korumak için SQL Server, parola karmaşıklığı ilkesine göre uygulanır. sp_addapprole.Parola karmaşıklık ilkesini zorlamak için kullanın. UYGULAMA ROLÜ OLUŞTURMA. |
İzinler
Üyelik gerekir. Ortak ve parolayı rolün.
Örnekler
C.uygulama rolü encrypt seçeneği olmaksızın etkinleştirme
Aşağıdaki örnek adında bir uygulama rolü etkinleştirir. SalesAppRole, düz metin parolasıyla AsDeF00MbXX, geçerli kullanıcı tarafından kullanılan uygulama için özel olarak tasarlanmış izinlerle oluşturuldu.
EXEC sp_setapprole 'SalesApprole', 'AsDeF00MbXX';
GO
b.uygulama rolü ile tanımlama bilgisi etkinleştirme ve daha sonra özgün içeriğine dönülüyor.
Aşağıdaki örnek etkinleştirir Sales11 parola ile uygulama rolü fdsd896#gfdbfdkjgh700mM, bir çerez oluşturur. Bu örnek, geçerli kullanıcı adını döndürür ve sonra çalıştırarak özgün içeriğe 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