Aracılığıyla paylaş


Uygulama Rolleri

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

Uygulama rolü, bir uygulamanın kendi kullanıcı benzeri izinleriyle çalışmasını sağlayan bir veritabanı sorumlusudur. Yalnızca belirli bir uygulama üzerinden bağlanan kullanıcılara belirli verilere erişimi etkinleştirmek için uygulama rollerini kullanabilirsiniz. Veritabanı rollerinin aksine, uygulama rolleri üye içermez ve varsayılan olarak etkin değildir. Uygulama rolleri, parola gerektiren sp_setapprole kullanılarak etkinleştirilir. Uygulama rolleri veritabanı düzeyinde bir sorumlu olduğundan, diğer veritabanlarına yalnızca bu veritabanlarında konuk için verilen izinler aracılığıyla erişebilirler. Bu nedenle, konuğun devre dışı bırakıldığı tüm veritabanları diğer veritabanlarındaki uygulama rollerine erişilemez.

SQL Server'da uygulama rolleri, sunucu düzeyinde bir sorumluyla ilişkilendirilmediklerinden dolayı sunucu düzeyindeki meta verilere erişemez. Bu kısıtlamayı devre dışı bırakmak ve böylece uygulama rollerinin sunucu düzeyinde meta verilere erişmesine izin vermek için -T4616 veya kullanarak genel izleme bayrağı 4616'yıDBCC TRACEON (4616, -1)ayarlayın. Bu izleme bayrağını etkinleştirmemek isterseniz, uygulama rollerinin sunucu durumunu görüntülemesine izin vermek için sertifika imzalı bir saklı yordam kullanabilirsiniz. Örnek kod için GitHub'da bu örnek betiği inceleyin.

Uygulama Rolü ile bağlanma

Aşağıdaki adımlar, bir uygulama rolünün güvenlik bağlamlarını değiştirme işlemini oluşturur:

  1. Kullanıcı bir istemci uygulaması yürütür.

  2. İstemci uygulaması, kullanıcı olarak bir SQL Server örneğine bağlanır.

  3. Uygulama daha sonra saklı yordamı yalnızca uygulama tarafından bilinen bir parolayla yürütür sp_setapprole .

  4. Uygulama rolü adı ve parolası geçerliyse, uygulama rolü etkinleştirilir.

  5. Bu noktada, bağlantı kullanıcının izinlerini kaybeder ve uygulama rolünün izinlerini kabul eder.

Uygulama rolü aracılığıyla alınan izinler, bağlantı süresi boyunca geçerli kalır.

SQL Server'ın önceki sürümlerinde, bir kullanıcının bir uygulama rolünü başlattıktan sonra özgün güvenlik bağlamını yeniden edinmesinin tek yolu SQL Server bağlantısını kesmek ve sql server'a yeniden bağlanmaktır. SQL Server 2005 (9.x) itibarıyla, sp_setapprole tanımlama bilgisi oluşturan bir seçenek sunmaktadır. Tanımlama bilgisi, uygulama rolü etkinleştirilmeden önce bağlam bilgilerini içerir. Depolanan sp_unsetapprole yordam daha sonra oturumu özgün bağlamına döndürmek için çerezi kullanır. Bu yeni seçenek ve örnek hakkında bilgi için bkz. sp_setapprole (Transact-SQL) ve sp_unsetapprole (Transaction-SQL).

Önemli

ODBC şifreleme seçeneği SqlClient tarafından desteklenmez. Gizli bilgileri bir ağ üzerinden aktarırken, kanalı şifrelemek için daha önce Güvenli Yuva Katmanı (SSL) olarak bilinen Aktarım Katmanı Güvenliği (TLS) veya IPsec kullanın. kimlik bilgilerini istemci uygulamasında kalıcı hale getirmelisiniz, şifreleme API'sini kullanarak kimlik bilgilerini şifreleyin. SQL Server 2005 (9.x) ve sonraki sürümlerinde parola parametresi tek yönlü karma olarak depolanır.

Görev Türü
Bir uygulama rolü oluşturun. Uygulama Rolü Oluşturma ve UYGULAMA ROLÜ OLUŞTURMA (Transact-SQL)
Uygulama rolünü değiştirme. UYGULAMA ROLÜNÜ DEĞIŞTIR (Transact-SQL)
Uygulama rolünü silin. DROP UYGULAMA ROLÜ (Transact-SQL)
Uygulama rolü kullanma. sp_setapprole (Transact-SQL)

Ayrıca bakınız

SQL Server Güvenliğini Sağlama