ASP.Net dan SQL Serverga haqiqiy foydalanuvchi nomlarini o'tkazish uchun eng yaxshi amaliyot

TSQL-da haqiqiy foydalanuvchi nomini ishlatish uchun eng yaxshi dasturni izlayapman, ayni paytda mening ASP.Net dasturim SQL Serverga veb-konferentsiyasida web.config faylida biriktiriladigan global login bilan kiradi.

Ushbu ASP.Net dasturi SharePoint2007 ilovasiga kengaytma sifatida yoziladi. Ushbu qo'llaniladigan ma'lumotlar bazasi SharePoint ma'lumotlar bazasi emas, balki eski ma'lumotlar bazasi.

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.

Triggerlar SYSTEM_USER qiymatidan foydalanadilar, shuning uchun global login har doim audit jadvaliga yoziladi.

Tizimda taxminan 2700 ta saqlangan protseduralar mavjud va ularning yarmi DML so'zlarini bajaradi.

Dasturni o'zgartirish uchun eng yaxshi usul nima bo'lardi, shuning uchun haqiqiy foydalanuvchi nomi qayd etilganmi? Mening ASP.Net dasturim foydalanuvchi nomlarini biladi. Aslida, mening barcha foydalanuvchilarim Active Directory hisob qaydnomasi bilan ASP.Net ilovasiga kiradilar.

Quyidagi variantlarni ko'rib chiqaman:

  1. Integratsiyalashgan xavfsizlikni qo'llang; lekin faqat boshqa SQL-mijoz bilan aloqa o'rnatishda foydalanilmasligi uchun ruxsat berilishi kerak bo'lgan ruxsatnomalar haqida nima deyish mumkin?
  2. ochilgan har bir ulanishda bir necha global o'zgaruvchini o'rnating; ammo joriy kodda har bir so'rov so'rovni qayta ishlash uchun ko'plab ulanishlarni, ba'zan yuzlab ularni ochadi.
  3. Saqlangan protseduralarga foydalanuvchi nomini kiritish, har jadvalga maydon qo'shish. Triggerni oddiygina foydalanuvchi nomlarini jadvalga yozib olish o'rniga o'qiydi; Ammo, bu ma'lumotlar bazasi ob'ektlarida juda ko'p o'zgarishlar talab qiladi va ko'plab xatolarni keltirib chiqaradi.

Ushbu variantlar bo'yicha sharhlar yoki ehtimol boshqa variantlarni ko'rib chiqish kerakmi?

2

1 javoblar

Odatda kontekst ma'lumotlarini ishlataman. Xolislikni saqlaydigan o'rnatilgan xavfsizlik havola qilishni yengib chiqadi va foydalanuvchi uchun foydalanuvchi nomini o'tqazish jarayoni shunchaki noto'g'ri his qiladi.

2
qo'shib qo'ydi
Mundarija ma'lumotlarini haqiqiy tSQL konstruktsiyasiga mos tushishini tushunish uchun biroz vaqt talab qildim CONTEXT_INFO . Bu yaxshi echimga o'xshaydi.
qo'shib qo'ydi muallif R. Schreurs, manba