PDA

View Full Version : حرفه ای: نوع برخورد Connection pooling با کاربر وارد شده با windows Authentication چطوره؟



amirjalili
یک شنبه 15 فروردین 1389, 16:18 عصر
اگر کاربرها به صورت احراز هویت ویندوزی (windows Authentication) به دیتابیس وصل بشن در اینصورت آیا connection pooling واحدی براشون ایجاد میشه یا به ازای هر user یک کانکشن جدید ساخته میشه؟
فرض کنید Connection String به صورت زیره و از integrated Security استفاده میکنیم :



Data Source=localhost"
"Initial Catalog=FirstDB;Integrated Security=SSP

Behrouz_Rad
یک شنبه 15 فروردین 1389, 16:24 عصر
با Connection String فوق، همیشه از Connection Pooling استفاده میشه.

موفق باشید.

alireza_s_84
یک شنبه 15 فروردین 1389, 16:25 عصر
اگر کاربرها به صورت احراز هویت ویندوزی (windows Authentication) به دیتابیس وصل بشن در اینصورت آیا connection pooling واحدی براشون ایجاد میشه یا به ازای هر user یک کانکشن جدید ساخته میشه؟
فرض کنید Connection String به صورت زیره و از integrated Security استفاده میکنیم :



Data Source=localhost"
"Initial Catalog=FirstDB;Integrated Security=SSP


فرقی نمیکنه دوست عزیز connection pooling واحدی براشون ایجاد میشه.

amirjalili
یک شنبه 15 فروردین 1389, 16:33 عصر
با تشکر از شما..
پس این جمله که در سایت MSDN نوشته چیه؟

if you use Basic authentication or Windows Authentication on the Web site and an integrated security login, you get one pool per user. Although this improves the performance of subsequent database requests for a single user, that user cannot take advantage of connections made by other users

اینجا به گمانم میگه که در صورتیکه با WINDOWS AUTHENTICATION کار کنیم به ازای هر کاربر یک connection pooling ایجاد میشه و کاربر نمیتونه از کانکشن هایی که برای کاربر های دیگه ساخته شده بهره ببره.

http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.80).aspx

با تشکر از شما

alireza_s_84
یک شنبه 15 فروردین 1389, 18:09 عصر
با تشکر از شما..
پس این جمله که در سایت MSDN نوشته چیه؟

if you use Basic authentication or Windows Authentication on the Web site and an integrated security login, you get one pool per user. Although this improves the performance of subsequent database requests for a single user, that user cannot take advantage of connections made by other users

اینجا به گمانم میگه که در صورتیکه با WINDOWS AUTHENTICATION کار کنیم به ازای هر کاربر یک connection pooling ایجاد میشه و کاربر نمیتونه از کانکشن هایی که برای کاربر های دیگه ساخته شده بهره ببره.

http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.80).aspx

با تشکر از شما

مهندس راد که جواب داد :
با Connection String فوق، همیشه از Connection Pooling استفاده میشه.
بله حق با شماست مثل اینکه Connection Pooling بر اساس رشته اتصال و شناسایی کاربر عمل میکنه بنابر این نوع شناسایی هم در تعیین انبار شدن اتصالات نقش داره:
Connections are pooled according to the connection string plus the user identity
اتصالات بر اساس رشته اتصال و نوع شناسایی کاربر انبار میشوند.
if you use Basic authentication or Windows Authentication on the Web site and an integrated security login, you get one pool per user
اینجا دیگه دقیقا توضیح داده.
ممنون از شما من فکر میکردم تنها بر اساس رشته اتصال اتصالات انبار میشن.

Behrouz_Rad
یک شنبه 15 فروردین 1389, 20:43 عصر
من فکر میکردم تنها بر اساس رشته اتصال اتصالات انبار میشن.

درست فکر می کنی. فکرت رو تغییر نده. اون مقاله رو با دقت بخون. اگر نام کاربری در Connection String برای هر کاربر منحصر به فرد باشه، Connection Pooling برای همه ی کاربران نسبت به یک Connection String اعمال نمیشه، چون Connection String برای هر کاربر منحصر به فرده.

موفق باشید.

alireza_s_84
یک شنبه 15 فروردین 1389, 21:33 عصر
درست فکر می کنی. فکرت رو تغییر نده. اون مقاله رو با دقت بخون. اگر نام کاربری در Connection String برای هر کاربر منحصر به فرد باشه، Connection Pooling برای همه ی کاربران نسبت به یک Connection String اعمال نمیشه، چون Connection String برای هر کاربر منحصر به فرده.

موفق باشید.

درسته مهندس چون در رشته نام کاربری هم تعیین میشه حق با شماست ابتدا توضیح دادم اما بعد که مقاله رو خوندم ایطور فکر کردم نوع شناسایی تاثیر پذیره ولی حالا دقیقتر که میخونم میبنم همونطوری بود که فکر میکردم:
http://barnamenevis.org/forum/posthistory.php?do=compare&p=944991

amirjalili
دوشنبه 16 فروردین 1389, 09:03 صبح
درسته مهندس چون در رشته نام کاربری هم تعیین میشه حق با شماست ابتدا توضیح دادم اما بعد که مقاله رو خوندم ایطور فکر کردم نوع شناسایی تاثیر پذیره ولی حالا دقیقتر که میخونم میبنم همونطوری بود که فکر میکردم

با تشکر.. پس ایجاد pool فقط به connection string بستگی داره؟
پس دلیل اینکه در اتصال windows authentication به ازای هر کاربر یک pool جداگانه ایجاد میشه چیه؟ اینجا که ما در connectionstring یوزری تعریف نمیکنیم. به ظاهر هر کاربری با همون connnection string به دیتابیس اتصال پیدا میکنه.
یه جورایی درست متوجه نشدم.

amirjalili
دوشنبه 16 فروردین 1389, 10:36 صبح
یه مسئله دیگه.. در نهایت پس استفاده از sql server Authentication مناسب تر از windows Authentication باید باشه؟ چون در sql server Authentication ما user , pass رو در connection string مینویسیم و همه کاربران با connection string مشابهی به دیتابیس وصل میشن پس برای همه اون ها pool واحدی ایجاد میشه و سرعت افزایش پیدا میکنه.
درست متوجه شدم یا خیر؟
ممنون.

Behrouz_Rad
دوشنبه 16 فروردین 1389, 14:52 عصر
دلیل اینکه در اتصال windows authentication به ازای هر کاربر یک pool جداگانه ایجاد میشه چیه؟

چون نام کاربری در Connection String تعریف میشه.

amirjalili
دوشنبه 16 فروردین 1389, 15:18 عصر
با تشکر از بهروز خان و جواب های مناسبشون.
به هر حال من به این نتیجه رسیدم که برای بهینه شدن سرعت اتصال به دیتابیس و ایجاد pool در درخواست های زیاد و کاربران زیادی که این درخواست ها رو به سرور ارسال میکنند باید از SQL Authentication استفاده کنم .