Gerçek kullanıcı adlarını ASP.Net'den SQL Server'a geçirmek için en iyi yöntem

TSQL'de gerçek kullanıcı adını kullanmak için en iyi pratice'i arıyorum, aynı zamanda ASP.Net uygulamam web.config dosyasındaki bağlantı dizesinde yapılandırılan global bir giriş ile SQL Server'a giriş yapar.

Bu ASP.Net uygulaması SharePoint2007 uygulamasının bir uzantısı olarak yazılmıştır. Bu veritabanı için geçerli bir veritabanı, bir SharePoint veritabanı değil.

The application in question needs to log each insert, update and delete in audit (shadow) tables, including date&time and username. This is done by triggers.

Tetikleyiciler, SYSTEM_USER değerini kullanır, böylece global oturum açma her zaman denetim tablosuna yazılır.

Sistemde yaklaşık 2700 saklı prosedür var ve bunların yarısının DML ifadelerini gerçekleştirdiğini tahmin ediyorum.

Uygulamayı değiştirmenin en iyi yolu, gerçek kullanıcı adı kaydedilecek şekilde ne olurdu? ASP.Net uygulamam kullanıcı isimlerini biliyor. Aslında, tüm kullanıcılarım, bir Active Directory hesabıyla ASP.Net uygulamasında oturum açar.

Aşağıdaki seçenekleri göz önünde bulunduruyorum:

  1. Entegre güvenliği kullanın; Ancak, yalnızca başka bir SQL istemcisiyle bağlantı kurulurken kullanılmaması gereken uygulama hakkında izin verilmesiyle ilgili izinler nelerdir?
  2. Açılan her bağlantıda bazı genel değişkenleri ayarlayın; ancak mevcut kodda, her istek, isteği işlemek için yüzlerce tanesi olmak üzere birçok bağlantıyı açar.
  3. Kayıtlı prosedürlerde kullanıcı adını geçmek, her tabloya bir alan ekleyin. Tetik, basitçe, kullanıcı isimlerini, elde etmek yerine tablolardan okur; bununla birlikte, bu, veritabanı nesnelerinde çok fazla değişiklik yapılmasını gerektirmektedir ve potansiyel olarak çok fazla hata üretmektedir.

Bu seçeneklerle ilgili herhangi bir yorum veya belki de dikkate alınması gereken diğer seçenekler nelerdir?

2

1 cevap

Normalde içerik bilgisini kullanırım. Kimliğe bürünme ile bütünleşik güvenlik, bağlantı havuzunu yenecek ve kullanıcı adlarını proks’e geçirecek ve yanlış bir yanlışlık hissedeceksiniz.

2
katma
İçerik bilgisinin gerçek tSQL yapısına atıfta bulunduğunu anlamak beni biraz zaman aldı. CONTEXT_INFO . Bu iyi bir çözüm gibi görünüyor.
katma yazar R. Schreurs, kaynak