Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Microsoft Fabric'te SQL veritabanı
Geçerli veritabanındaki bir uygulama rolüyle ilişkili izinleri etkinleştirir.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_setapprole
[ @rolename = ] N'rolename'
, [ @password = ] N'password'
[ , [ @encrypt = ] 'encrypt' ]
[ , [ @fCreateCookie = ] fCreateCookie ]
[ , [ @cookie = ] cookie OUTPUT ]
[ ; ]
Tartışmalar
[ @rolename = ] N'rolename'
Geçerli veritabanında tanımlanan uygulama rolünün adı. @rolenamesysname'dir ve varsayılan değer yoktur. @rolename geçerli veritabanında mevcut olmalıdır.
[ @password = ] { encrypt N'password' }
Uygulama rolünü etkinleştirmek için gereken parola.
@password, sysname varsayılan değildir.
@password ODBC encrypt işlevi kullanılarak gizlenebilir. işlevini kullandığınızda encrypt , parolanın ilk tırnak işaretinden önce yerleştirilerek N Unicode dizesine dönüştürülmesi gerekir.
Şifreleme seçeneği, SqlClient kullanan bağlantılarda desteklenmez.
Önemli
ODBC encrypt işlevi şifreleme sağlamaz. Ağ üzerinden iletilen parolaları korumak için bu işleve güvenmemelisiniz. Bu bilgiler bir ağ üzerinden iletilecekse TLS veya IPSec kullanın.
[ @encrypt = ] { 'hiçbiri' | 'odbc' }
Parolayı SQL Server Veritabanı Altyapısı'na göndermeden önce şifreleme türünü belirtir. @encryptvarchar(10) şeklindedir ve bu değerlerden biri olabilir.
| Değer | Açıklama |
|---|---|
none (varsayılan) |
Hiçbir gizlemenin kullanılmadığını belirtir. Parola SQL Server'a düz metin olarak geçirilir. |
odbc |
ODBC'nin, parolayı SQL Server Veritabanı Altyapısı'na göndermeden önce ODBC encrypt işlevini kullanarak parolayı gizlediğini belirtir. Bu değer yalnızca BIR ODBC istemcisi veya SQL Server için OLE DB Sağlayıcısı kullanıyorsanız belirtilebilir. |
[ @fCreateCookie = ] { 'doğru' | 'yanlış' }
Tanımlama bilgisinin oluşturulup oluşturulmayacağını belirtir.
@fCreateCookiebittir ve varsayılan değeridir 0.
true örtük olarak öğesine 1dönüştürülür.
false örtük olarak öğesine 0dönüştürülür.
[ @cookie = ] tanımlama bilgisi ÇıKıŞı
Tanımlama bilgisini içerecek bir çıkış parametresi belirtir.
@cookie, varbinary(8000) türünde bir OUTPUT parametresidir. Tanımlama bilgisi yalnızca @fCreateCookie değeri ise trueoluşturulur.
Uyarı
Geçerli uygulama varbinary(50) döndürse de, uygulamaların belgelenmiş varbinary(8000)'i ayırması gerekir, böylece uygulama gelecekteki bir sürümde tanımlama bilgisi dönüş boyutu artarsa düzgün çalışmaya devam eder.
Dönüş kodu değerleri
0 (başarılı) ve 1 (başarısızlık).
Açıklamalar
Bir uygulama rolü kullanılarak sp_setapproleetkinleştirildikten sonra, kullanıcı sunucu bağlantısını kesene veya yürütene sp_unsetapprolekadar rol etkin kalır. Başka bir saklı yordamda, tetikleyicide veya kullanıcı tanımlı bir işlemde kullanamazsınız sp_setapprole . Yalnızca doğrudan Transact-SQL deyimleri olarak yürütülebilir.
Uygulama rollerine genel bakış için bkz. Uygulama Rolleri.
Bir uygulama rolünü etkinleştirirken, bir ağ üzerinden iletirken uygulama rolü parolasını korumak için her zaman şifreli bir bağlantı kullanmanız gerekir.
Microsoft ODBC encrypt seçeneği SqlClient tarafından desteklenmez. Kimlik bilgilerini depolamanız gerekiyorsa bunları şifreleme API'si işlevleriyle şifreleyin. parametre @password tek yönlü karma olarak depolanır. SQL Server'ın sp_addapprole önceki sürümleriyle uyumluluğu korumak için parola karmaşıklığı ilkesini zorunlu kılmaz. Parola karmaşıklığı ilkesini zorunlu kılmak için CREATE APPLICATION ROLE kullanın.
İzinler
Genel üyelik ve rol için parola bilgisi gerektirir.
Örnekler
A. Şifreleme seçeneği olmadan uygulama rolünü etkinleştirme
Aşağıdaki örnek, geçerli kullanıcı tarafından kullanılan uygulama için tasarlanmış izinlerle oluşturulan adlı SalesAppRolebir uygulama rolünü etkinleştirir. değerini güçlü bir parolayla değiştirin <password> .
EXECUTE sys.sp_setapprole 'SalesApprole', '<password>';
GO
B. Uygulama rolünü tanımlama bilgisi ile etkinleştirme ve ardından özgün bağlama geri dönme
Aşağıdaki örnek uygulama rolünü etkinleştirir Sales11 ve bir tanımlama bilgisi oluşturur. Örnek geçerli kullanıcının adını döndürür ve yürüterek sp_unsetapproleözgün bağlama geri döner. değerini güçlü bir parolayla değiştirin <password> .
DECLARE @cookie AS VARBINARY (8000);
EXECUTE sys.sp_setapprole
'Sales11',
'<password>',
@fCreateCookie = true,
@cookie = @cookie OUTPUT;
Uygulama rolü artık etkin.
USER_NAME() , uygulama rolünün Sales11adını döndürür.
SELECT USER_NAME();
Uygulama rolünün ayarını kaldırın.
EXECUTE sys.sp_unsetapprole @cookie;
GO
Uygulama rolü artık etkin değil. Özgün bağlam geri yüklenir.
USER_NAME() özgün kullanıcının adını döndürür.
SELECT USER_NAME();
GO