ارتباط به منابع داده در ADO.NET ( بخش دوم ) در بخش اول این مقاله به تشریح انواع Data Provider پرداخته و با نحوه انتخاب آنان بمنظور استفاده در برنامه ها ، آشنا شدیم . در این بخش به بررسی نحوه ایجاد یک Connection خواهیم پرداخت . Connection String ، بخشی ضروری بمنظور ارتباط با یک منبع داده است . خصلت ConnectionString مربوط به شی Connection ، اطلاعات لازم را در اختیار شی Connection قرار می دهد .
امنیت بانک اطلاعاتی در زمان دستیابی به داده از طریق ADO.NET ، می بایست با استفاده از یک روش ایمن به بانک اطلاعاتی مرتبط گردید. بمنظور نیل به هدف فوق ، اطلاعات امنیتی نظیر نام کاربر و رمز عبور می بایست قبل از ایجاد هر گونه ارتباط با بانک اطلاعاتی در اختیار وی گذاشته شوند ( ارسال اطلاعات اولیه بمنظور اطمینان از معتبر بودن کاربر ) .امنیت بانک اطلاعاتی ، بستگی به نوع بانک اطلاعاتی مربوطه خواهد داشت .
استفاده از امنیت سرویس دهنده SQL سرویس دهنده SQL ، با استفاده از دو روش متفاوت اقدام به تائید کاربر می نماید : تائید کاربران بر اساس سیستم امنیتی ویندوز ( Microsoft Windows Authentication ) و حالت ترکیبی ( Mixed Mode Authentication ) .
روش Windows Authentication در مدل فوق ، این امکان برای یک کاربر فراهم خواهد شد که با استفاده از یک Account ویندوز به بانک اطلاعاتی مرتبط گردد . خصلت امنیتی شبکه برای کاربر در زمان ورود به شبکه ایجاد می گردد . زمانیکه یک کاربر شبکه سعی در ارتباط با بانک اطلاعاتی سرویس دهنده SQL می نماید ،عملیات تائید وی آغاز و در ادامه بر اساس سیاست های امنیتی ورود به شبکه که قبلا" برای وی تعریف و تنظیم شده است ، امکان دستیابی وی به بانک اطلاعاتی محقق و یا با درخواست وی بدلایل امنیتی مخالفت خواهد شد . در چنین حالتی ضرورتی به یک Login مجدد ( ورود نام و رمز عبور توسط کاربر) وجود نخواهد داشت . استفاده از روش فوق ، بمنظور ارتباط با بانک اطلاعاتی دارای مزایای زیر است :
نکته : با توجه به اینکه کاربران و گروههای ویندوز ، صرفا" توسط ویندوز نگهداری و پشتیبانی می گردند ، سرویس دهنده SQL اطلاعات مربوط به یک گروه کاربران را در زمان اتصال به بانک اطلاعاتی می خواند . در صورتیکه تغییراتی در رابطه با مجوزهای دستیابی برای یک کاربر متصل شده ایجاد گردد ، تغییرات ایجاد شده در زمان آتی که کاربر به سرویس دهنده SQL مرتبط می گردد ؛ در نظر گرفته شده و متناسب با تغییرات ایجاد شده با کاربر برخورد خواهد شد .
روش Mixed Mode Authentication در روش فوق ، این امکان برای کاربران فراهم می گردد که به یک سرویس دهنده SQL بر اساس Windows Authentication و یا SQL Server Authentication متصل گردند . کاربرانی که از طریق ویندوز NT 4.0 و یا ویندوز 2000 به بانک اطلاعاتی مرتبط می گردند ، قادر به استفاده از ارتباطات trusted در Windows Authentication و یا Mixed Mode Authntication می باشند . زمانیکه کاربری با استفاده از یک نام و رمز عبور خاص و بکمک یک ارتباط non-trusted به بانک اطلاعاتی متصل می گردد ، سرویس دهنده SQL خود عملیات تائید کاربر را بررسی می نماید ( آیا یک account سرویس دهنده SQL پیکربندی و تنظیم شده است ؟) . در صورتیکه ماحصل بررسی فوق منفی باشد ، کاربر تائید نشده و وی با یک پیام خطاء مواجه خواهد شد.
نکته : در صورتیکه کاربری سعی در ارتباط با یک سرویس دهنده SQL 7.0 ، ( مورد نظر سرویس دهنده SQL 2000 نمی باشد ) را داشته و یک نام خالی ( blank) را وارد نماید ، سرویس دهنده SQL 7.0 ، از Windows Authentication استفاده می نماید.علاوه بر این ، در صورتیکه کاربری سعی در ارتباط با یک سرویس دهنده SQL 7.0 نماید که برای Windows Authentication پیکربندی شده باشد ( استفاده از یک Login خاص ) ، login مورد نظر نادیده گرفته شده و از روش Windows Authentication استفاده خواهد شد .
روش SQL Server Authentication بمنظور سازگاری با نسخه های قبلی ارائه شده است . زیرا بر نامه های نوشته شده برای سرویس دهنده SQL 7.0 ، و یا قبل از آن می بایست از نام و رمز عبور سرویس دهنده SQL استفاده نمایند. علاوه بر این ، زمانیکه یک نمونه از سرویس دهنده SQL تحت ویندوز 98 اجراء می گردد ، چون روش Windows Authentication در نسخه وینوز 98 حمایت نمی گردد ، مجددا" از روش SQL Server Authentication استفاده خواهد شد .بنابراین سرویس دهنده SQL از Mixed Mode در زمان اجراء ویندوز 98 استفاده می نماید ( ولی صرفا" SQL Server Authentication حمایت می گردد ) .
Connection String چیست ؟ بمنظور انتقال اطلاعات بین یک منبع داده و برنامه ، می بایست در ابتدا دارای یک ارتباط ( اتصال ) با منبع داده باشیم . خصلت ConnectionString ، اطلاعات ضروری و مورد نیاز در ارتباط با تعریف یک اتصال به منبع داده را از طریق یک رشته مشتمل بر مجموعه ای از پارامترها ، ارائه می نماید. جدول زیر چندین پارامتر متداول در رابطه با Connection string را نشان می دهد .
توضیحات | پارامتر |
از خصلت فوق بمنظور تنظیم و یا برگرداندن نام Provider مرتبط با Connection استفاده می گردد . امکان استفاده از خصلت فوق، صرفا" برای اشیاء OleDbConnection وجود خواهد داشت . | Provider |
مدت زمان انتظار برحسب ثانیه بمنظور ارتباط با بانک اطلاعاتی را مشخص می نماید. ( پیش فرض 15 ) . | Connection TimeOut |
نام بانک اطلاعاتی | Initial Catalog |
نام سرویس دهنده SQL استفاده شده در زمانیکه یک Connection فعال شده باشد و یا نام فایل در رابطه با یک بانک اطلاعاتی Access را مشخص می نماید . | Data Source |
رمز عبور برای SQL Server account | Password |
SQL Server Login account | User ID |
ایمن بودن ارتباط را مشخص می نماید. مقادیر مورد نظر می تواند True,False و SSPI باشد . ( SSPI معادل True است ) | Integrated Security or Trusted Connection |
زمانیکه مقدار آن False باشد ، اطلاعات حساس امنیتی نظیر رمز عبور بعنوان بخشی از ارتباط (زمانیکه ارتباط فعال می گردد) ، برگردانده نخواهد شد. تنظیم خصلت فوق به True می تواند یک ریسک امنیتی باشد مقدار پارامتر فوق بصورت پیش فرض False است . | Perisist Security Info |
نحوه تنظیم یک Connection String بمنظور ایجاد و مدیریت یک Connection می بایست یکی از اشیاء Connection مربوط به ADO.NET را استفاده نمود : شی SqlConnection و یا شی OleDbConnection . تنظیم خصلت ConnectionString صرفا" زمانی که Connection بسته می گردد، میسر خواهد بود . بمنظور Reset نمودن یک Connection String می بایست Connection مورد نظر را بست و مجددا" آن را فعال نمود.
مثال در این بخش به بررسی چندین مثال بمنظور آشنائی با نحوه استفاده از Connection String بهمراه پارامترهای مربوطه ، خواهیم پرداخت . دقت داشته باشید که تمامی Connection String ها ، دارای پارامترهای یکسان نمی باشند .
مثال 1 - نحوه اتصال به یک بانک اطلاعاتی SQL Server 2000 با استفاده از شی SqlConnection و VB.NET
پارامتر | مقدار |
Product | SQL Server 2000 |
Server name | Tehran |
DatabaseName | Northwind |
Security | Mixed mode |
Username | sa |
Password | 110 |
Timeout | 1 minute |
نحوه اتصال به بانک اطلاعاتی | |
Dim cnNorthwind as New _ system.Data.SqlClient.SqlConnection() |
مثال 2 - نحوه اتصال به یک بانک اطلاعاتی Access با استفاده از یک OleDbConnection و ویژوال بیسیک
پارامتر | مقدار |
Product | Microsoft Access 2000 |
Database location | \Samples\Northwind.mdb |
نحوه اتصال به بانک اطلاعاتی | |
Dim cnNorthwind as New _ |
مثال 3 - نحوه اتصال به یک بانک اطلاعاتی SQL Server 6.5 با استفاده از شی OleDbConnection و #C
پارامتر | مقدار |
Product | SQL Server 6.5 |
Server name | Myserver |
DatabaseName | Pubs |
Security | Windows authentication |
نحوه اتصال به بانک اطلاعاتی | |
System.Data.oleDb.OleDbConnection cnNorthwind = new |
ساده ترین روش تنظیم یک Connection string استفاده ار ویژوال استودیو دات نت است :
برنامه ویژوال استودیو را فعال نمائید.
یک ASP.NET Application و یا Windows Application را با استفاده از VB ، ایجاد نمائید.
کنترل SqlConnection را بر روی فرم مورد نظر قرار دهید( Darg&Drop ) .
در پنجره Properties ، خصلت ConnectionString را تنظیم نمائید.
نجره ویرایشگر کد را فعال و کدی را که بصورت اتوماتیک ایجاد شده است ، مشاهده نمائید.
در بخش سوم این مقاله بررسی نحوه مدیریت یک Connection خواهیم پرداخت