PDA

View Full Version : مشکل در استخراج اطلاعات sqlServer



145451159
سه شنبه 26 اسفند 1399, 09:09 صبح
با سلام من تازه شروع به برنامه نویسی سی شارپ کردم و دارم از اینترنت آموزش میبینم.
string connectionString = "Data Source=.;Initial Catalog=Contacts;Intgrated Security=true";
این کد رو میبینید به نظر درست است ولی وقتی کارم تموم شد وقتی اجرا کردم نتونست کامپایل کنه و از
adapter.Fill(data);
ایراد گرفت
من قبلا برای sql رمز گذاشتم ولی نمیدونم User ID من چیه شاید sa نمیدونم راهنمایی کنید که آیا
string connectionString = "Data Source=.;Initial Catalog=Contacts;Intgrated Security=true";
کد درستی هست و راهنمایی کنید که در حالت پیشفرض User ID چیه؟
چون از کد نویسی چیز زیادی سر در نمیارم نمی تونم خوب سوالم رو بپرسم امید وارم منظورم رو متوجه شده باشید.
پیشاپیش عیدتون مبارک

the king
سه شنبه 26 اسفند 1399, 19:38 عصر
با سلام من تازه شروع به برنامه نویسی سی شارپ کردم و دارم از اینترنت آموزش میبینم.
string connectionString = "Data Source=.;Initial Catalog=Contacts;Intgrated Security=true";
این کد رو میبینید به نظر درست است ولی وقتی کارم تموم شد وقتی اجرا کردم نتونست کامپایل کنه و از
adapter.Fill(data);
ایراد گرفت
من قبلا برای sql رمز گذاشتم ولی نمیدونم User ID من چیه شاید sa نمیدونم راهنمایی کنید که آیا
string connectionString = "Data Source=.;Initial Catalog=Contacts;Intgrated Security=true";
کد درستی هست و راهنمایی کنید که در حالت پیشفرض User ID چیه؟
چون از کد نویسی چیز زیادی سر در نمیارم نمی تونم خوب سوالم رو بپرسم امید وارم منظورم رو متوجه شده باشید.
پیشاپیش عیدتون مبارک
Connection String از یکسری مقادیر که با ; از هم تفکیک شدن تشکیل شده که برای اینکه ارتباط برقرار نشه اشتباه بودن یک یا چند مقدار کفایت می کنه.
مثلا الان دیکته Integrated رو اشتباه نوشته اید و برای همین Integrated Security که باید تعیین کننده نوع تایید هویت باشه مشخص نشده.

در کل Connection String یک مقدار ثابت و مشخص نداره که بشه گفت فلان مقدار روی همه سیستم ها درست هست یا نیست.
روی هر سیستمی بر اساس نوع ارتباط، مشخصات پایگاه داده، تنظیمات سرور و سیستم Connection String مناسب تغییر می کنه.

این Connection String شما اگر دیکته Integrated رو درست کنید با این شرایط جواب میده که :
سرور پایگاه داده، پیشفرض (Default) باشه (چون Data Source مقدار . داره).
پس اگر سرور ای که پایگاه داده روی اون قرار داره موقع نصب به عنوان پیشفرض نصب نشده باشه، مثلا فقط به عنوان SQLExpress قابل دسترسی باشه، اونوقت Data Source مقدار درستی نداره و باید بجای . اسم و آدرس اون سرور نوشته بشه، مثلا بجای .=Data Source بشه Data Source=.\SQLExpress
اسم پایگاه داده Contacts باشه، چون Initial Catalog همچین مقداری داره.
لاگین با کاربر ویندوز (نه با Username و Password در سرور) صورت بگیره چون Integrated Security مقدار true داره. وقتی Integrated Security فعال باشه، از User ID و Password برای اتصال استفاده نمیشه، و البته از نظر امنیتی هم گزینه بهتری است.

اما زمانی که برای اتصال به سرور از Username و Password استفاده می کنید Integrated Security مقدار false خواهد داشت تا غیر فعال بشه (یا اصلا Integrated Security مشخص نمیشه)


string connectionString = "Data Source=.;Initial Catalog=Contacts;User Id=sa;Password=myPassword;";

درسته که اصولا کاربر sa ای هست، ولی نام کاربر نمیتونه پیشفرض باشه. و چون sa نام کاربری شناخته شده ای هست و میتونه هدف حمله باشه، از نظر امنیتی بهتره روی کاربر sa رمز عبور قوی قرار داده بشه و بعد بذاریدش کنار، یعنی بجای sa از یک نام کاربری متفرقه دیگه برای ارتباط استفاده کنید.