مشاهده نسخه کامل
: درخواست مقاله فوري در ارتباط با Sql Server 2005
Manager_66
14-06-2008, 16:04
سلام
در مورد يك يا چند مورد از گزينه هاي زير در Sql Server 2005 مطلب ميخوام :11:
اگه كسي از دوستان سريعا بذاره ممنون ميشم :40:. ببخشيد به خاطر كمبود وقت نتونستم بگردم ببينم همچين موضوعي هست يا نه :41:...
• Analysis services
• Integration services
• Storage & Filegroup
• Cursors
• Indexes(Clustered & Non Clustered)
• Database Tuninig Advisor
• Partitioning
• Triggers
• Replication
راستي مقاله ها به زبان فارسي باشن ... ممنون.
majid-ar
14-06-2008, 16:33
با SQL Server 2005 بيشتر آشنا شويد
با نسخه جديد SQL Server ،برنامه نويسان بانك هاي اطلاعاتي قادرند از امكانات و قابليت هاي موجود در پلتفرم دات نت و كليه توابع و كلاس هاي ساخته شده در آن بهره مند شوند. يكي از ابتدايي ترين و در عين حال اساسي ترين اين قابليت ها،امكان استفاده از دو زبان مهم و كاربر پسند دات نت يعني ويژوال بيسيك و سي شارپ در پياده سازي اجزاي مختلف يك بانك اطلاعاتي است.
--------------------------------------------------------------------------------
Snapshot lsolation level
يكي از روش هايي كه به انواع متدهاي قفل كردن رديف هاي يك جدول بانك اطلاعاتي در نسخه جديد اضافه شده است شيوه تصوير برداري از ركورد است. در روش هاي قبلي،اگر يك يا چند ركورد بانك اطلاعاتي توسط دستور Begitn Trans كه شروع يك فرآيند را مشخص مي كند در شرف تغيير يا حذف قرار مي گرفتند،تا مادامي كه فرآيند مذكور توسط دستور Commit Trans تاييد يا توسط ROLLBack منتفي نشود،از هيچ جا و برنامه اي نمي توان ركوردهاي مذكور را حتي با دستور ساده SELECT خواند. اما در روش جديد قفل گذاري در صورت بروز چنين رويدادي ساير كاربران مي توانند همواره آخرين ارزش ركوردهاي مذكور را با اين فرض كه هنوز هيچ تغييري در آن ها ايجاد نشده است بخوانند و مورد استفاده قرار دهند.
باز هم دات نت
با نسخه جديد SQL Server ،برنامه نويسان بانك هاي اطلاعاتي قادرند از امكانات و قابليت هاي موجود در پلتفرم دات نت و كليه توابع و كلاس هاي ساخته شده در آن بهره مند شوند. يكي از ابتدايي ترين و در عين حال اساسي ترين اين قابليت ها،امكان استفاده از دو زبان مهم و كاربر پسند دات نت يعني ويژوال بيسيك و سي شارپ در پياده سازي اجزاي مختلف يك بانك اطلاعاتي است. اين عامل نه تنها باعث مي شود كه برنامه نويسان براي نوشتن ماژول هايي مثل تريگرها،روال ها(Stored procedures ) در توابع به جاي استفاده از زبان استاندارد و در عين حال پيچيده T-SQL ،بتوانند از زبان هاي محيط دات نت با تمام ساختارها،دستورات،كلاس ها،آرايه ها،و خلاصه تمام ويژگي هاي يك زبان شي گرا استفاده كنند،بلكه اين همكاري نزديك بين موتور برنامه نويسي دات نت يعني CLR (مسئول تبديل كدهاي نوشته شده دات نت به زبان سيستم عامل است) و موتور بانك اطلاعاتي SQL Server باعث شده تا به غير از تنوع زبان هاي برنامه نويسي قابل استفاده در SQL Server ،تغيير قابل توجهي نيز در كارآيي ماژول هاي مذكور پيش آيد. در واقع موضوع از اين قرار است كه اصولا” كدهاي نوشته شده به زبان هاي دات نت، ابتدا توسط كامپايلر به زبان (IL ) ترجمه مي شوند. سپس CLR اين كد مياني را به كد قابل فهم سيستم عامل تبديل و آماده اجرا مي نمايد. اين كار سبب مي شود تا كدهاي نهايي به دليل اين بسيار به سيستم عامل نزديك مي باشد سريع تر از كدهاي TSQL (كه فقط توسط موتور بانك اطلاعاتي قابل اجرا هستند )اجرا شوند و در زمان اجرا از كارايي بيشتري برخوردار باشند. البته اين مساله بدين معني نيست كه استفاده از زبان هاي دات نت هميشه بر زبان هاي SQL ارجحيت دارد،بلكه منظور آن است كه در برخي موارد ممكن است آن قدر منطق و الگوريتم يك ماژول پيچيده باشد كه برنامه نويس استفاده از زبان هاي دات نت را به دليل آسان تر بودن ساختار و دستورات آن به زبان SQL ترجيح دهد. بنابراين زماني كه بيشتر عمليات يك ماژول مربوط به خواندن و نوشتن اطلاعات باشد بهتر است از همان دستورات استاندارد SQL يعني DELETE,UPDATE,SELECR و INSERT استفاده كرده و بي جهت منابع سيستم را صرف تعريف متغيرها و كلاس هاي دات نت ننمايد. اما در ماژول هايي كه بيشتر عملياتشان شامل پردازش اطلاعات مثل انجام عمليات هاي رياضي يا مقا يسه اطلاعات با يكديگر است بهتر است تا هم از امكانات برنامه نويسي و هم از سرعت و كارايي بالاي دات نت در اين زمينه بهره برد و ماژول هاي مذكور را با زبان هاي دات نت پياده سازي كرد.
ADO.NET وارد مي شود
طبق يك سنت نه چندان قديمي برنامه نويسي در محيط ويندوز،برنامه نويسان SQL Server بانك اطلاعاتي مورد نظرشان را بروي سرور و برنامه كاربردي نوشته شده با زباني مثل ويژوال بيسيك را بر روي كلاينت ها قرار مي دهند. سپس از طريق اين برنامه كاربردي و با استفاده ا زاشياي از جنس ADO داده هاي مورد نياز خود را از سمت سرور دريافت كرده و يا به آن ارسال مي كنند. اكنون اين ارتباط به لطف نسخه جديد SQL Server و همچنين محيط دات نت با امكانات جديد ADO.NET بسيار كامل تر از قبل شده است. اين ارتباط جديد با استفاده از مكانيسمي به نام اعلان (Notification ) به يك ارتباط دو طرفه فعال تبديل شده به طوري كه ADD.NET قادر است پيغام هايي را از سمت پايگاه داده به سمت كلاينت ارسال كند. به عنوان مثال فرض كنيد كه شما با استفاده از ADO تعدادي از ركوردهاي يك جدول بانك اطلاعاتي را انتخاب كرده و مشغول كار بر روي آن ها هستيد. در همين هنگام كاربر ديگري از طريق كلاينت و ADO خود،ركوردي در محدوده ركوردهاي مورد انتخاب شما را تغيير مي دهد يا حذف مي كند. در اين وقت موتور پايگاه داده با ارسال پيغامي به ADO شما،اين مساله را با استفاده از فراخواني يك رخداد (Event ) شي ADO به اطلاعاتي مي رساند. علاوه بر اين قابليت جديد،فناوري جديد ديگري هم با استفاده از ADO.NET به نسخه جديد SQL.Server اضافه شده و آن امكان چند پرس و جوي همزمان توسط يك شي ADO است. در اين شيوه اگر يك شي ADO با استفاده از دستور SELECT مشغول خواندن تعدادي از ركوردهاي يك جدول بانك اطلاعاتي باشد،مي تواند بدون اين كه منتظر به پايان رسيدن اين عمليات شود،تعداد ديگري از ركوردهاي يك جدول ديگر بانك اطلاعاتي را بخواند. اين قابليت جديد با نام (MARS ) Multiple Active Result Set كه قبلا” در كرسرهاي سمت سرور (Server side ) و آن هم نه با كارايي بالا وجود داشت اكنون در كرسرهاي سمت راست كلاينت هم وجود دارد و تفاوت عمده آن با شكل قديمي هم علاوه بر مورد مذكور امكان ايجاد چند كرسر در يك شي ADO به صورت همزمان است SQL.Server . نسخه 2005 به خوبي از تمام اين ويژگي ها،پشتيباني مي كند.
تكنولوژي XML
اكنون كه XML به يك استاندارد ارتباطي بين سكوهاي مختلف تبديل شده است،نسخه جديد SQL Server هم از توجه كافي به آن و ايجاد يك انقلاب در ساده تر استفاده كردن از آن طفره نرفته است. در نسخه 2000 كاربران قادر بودند تا با استفاده از دستور FOR XML نتيجه يك پرس و جوي SELECT از يك بانك اطلاعاتي را به درون يك فايل XML را باز كرده و شروع به خواندن دستورات آن نمايند. از آن جا كه در نسخه جديد SQL Server توجه خاصي بهاين استاندارد و زبان ارتباطي شده است.يك نوع داده جديد (Date type ) به انواع داده هاي قبلي و استاندارد SQL مثل Char,int و امثال آن اضافه شده است. اين نوع داده جديد كه XML نام دارد و داراي خصوصيات يك نوع داده موجود در يك محيط شي گرا است،داراي متدهاي پيشرفته اي چون () guery ،() exist ،() value ،()nodes ،() modify بوده و قادر است انواع پردازش هاي قابل انجام بر روي اسناد XML را به راحتي انجام دهد. عمليات جستجو ،تغيير، حذف و درج مقادير مورد نظر در داخل يك فايل XML را مي توان با استفاده از متدهاي مذكور و صرفا” با چند خط برنامه نويسي انجام داد. همچنين در اين نسخه برخلاف نسخه 2000 ،با استفاده از دستور FOR XML مي توان يك شي از جنس XML را بدون ارسال آن به كلاينت،بر روي سرور ساخته و از آن نگهداري كرد. با اين كار مي توان جداولي را كه مرتبا” مورد رجوع كاربران قرار مي گيرند هر از گاهي در قالب XML به داخل حافظه آورد و كاربران مذكور به جاي رجوع به جداول اصلي در هارد ديسك،با استفاده از دستورات ويژه جستجو در XML ،متغير مذكور را در حافظه سرور مورد جستجو قرار دهند و بدين وسيله يك نوع عمل Cache كردن را جهت افزايش سرعت دسترسي به اطلاعات تكراري شبيه سازي كنند. در اين حالت،كاربران به جاي استفاده از دستور SELECT استاندارد مي توانند از OPEN XML كه در نسخه 2005 قادر است متغيرهاي جديد از نوع XML را بخواند استفاده كرده و به سرعت به اطلاعات مورد نياز خود دسترسي پيدا كنند. اين قابليت جديد آن قدر در سريع تر كردن جستجو در برنامه هاي تحت وب مهم و موثر است كه جاي هيچ مشكلي را در استفاده از آن باقي نمي گذارد.
سرويس اعلان (Notification )
همان طور كه گفتيم سيستم اعلان در SQL Server قادر است پيغام هايي را طي زمان هاي مشخص به سمت كاربران بفرستد. مثلا” تصور كنيد كه تعدادي كاربر در حال اتصال به يك بانك حاوي اطلاعات مربوط به ارزش سهام در بورس هستند. از آن جايي كه ممكن است قيمت سهام هر شركت يا موسسه براي تعدادي از كاربران از اهميت زيادي برخوردار باشد،مي توان اين سيستم را طوري تنظيم كرد تا هر گاه ارزش سهام خاصي ك مورد نظر هر كاربر است تغيير كرد،به صورت اتوماتيك به وي اعلام شود. كاربر هم مي تواند اين تغييرات را بر روي برنامه كاربردي خود،تلفن همراه(ئر قالب SMS )،Windows Messenger و يا ايميل به صورت مرتب دريافت و مشاهده كند.
سرويس گزارش گيري
سرويس جديد توليد گزارش هاي متنوع در نسخه 2005 به يكي از جالب ترين و پركاربرد ترين قابليت هاي اين نسخه تبديل شده است،وجود يك موتور گزارشگر قوي در سمت سرور و يك ابزار مناسب ساخت گزارش با واسط كاربر عالي،باعث شده تا برنامه نويسان بتوانند گزارش هاي مورد نظر خود را با كارايي و سرعت مناسب در سمت سرور بسازند به طوري كه اين گزارش هاي سمت سرور توسط هر برنامه كاربردي سمت كلانيت در هر پلتفرمي با همان امكانات اتصال به SQL Server قابل مشاهده است.
بهبودهاي ايجاد شده در زبان
در SQL Server 2005 تغييرات بسيار مثبتي در زبان SQL T ايجاد شده است. اين تغييرات در زمينه هاي مختلف مثل مديريت خطاها،جستجوهاي بازگشتي (Recursive Query ) و حتي در بدنه موتور پايگاه داده ها انجام شده و كارايي كلي ذخيره و يا خواندن اطلاعات را به نحو مطلوبي افزايش داده است. به عنوان مثال در دستورات TSQL ،دو اپراتور جديد ديده مي شود كه PIVOT و UNPIVOT نام دارند. اين دو اپراتور كه در قسمت FROM يك پرس وجو مورد استفاده قرار مي گيرند مي توانند نتيجه يك جستجوي انجام شده توسط دستور SELECT را به جاي برگرداندن در قالب رديف ها يا ركوردهاي پشت سر هم،به صورت ستون هاي مختلف يك يا چند ركورد برگردانند. در اين روش يكي از ستون هاي فيلدهاي يك جستجو به عنوان محور معرفي شده و بقيه ستون ها بر اساس آن به صورت افقي طبقه بندي مي شوند. به يك مثال توجه كنيد:
SELECT CUSTOMER ID, Order NO FROM Orders PIVOT Customer ID
Order NO Order NO Order NO Order NO Customer ID
4400 1120 25 1
350 2
1780 443 3
8989 2222 1980 555 4
نتيجه جستجوي فوق چيزي شبيه جدول بالا خواهد بود.
همان طور كه مشاهده مي كنيد با استفاده از اپراتور مذكور،نتيجه پرس و جوي انجام شده به اين صورت كه هررديف به يك شماره مشتري و جندين شماره سفارش مربوطه به آن مشتري در قالب ستون هاي مختلف است. در مي آيد. اين همان چيزي است كه سالها SQLServer آن را با نام Cross Tab به كاربران خود ارايه مي دادند. در همين رابطه اپراتور UNPIVOT هم عمل عكس اپراتور مذكور را انجام مي دهد. اپراتور ديگري كه مي تواند نقش مهمي را در دستورات SQL بازي كند APPLY نام دارد كه در قسمت FROM يك دستور SQL به كار مي رود. با استفاده از اين دستور مي توان خروجي يك تابع را با يك يا چند جدول ديگر تركيب كرد همان طور كه مي دانيد در SQL Server توابع مي توانند يك يا چند رديف جدول اطلاعاتي را برگردانند كه اين خروجي مي توانند با يك جدول ديگر با استفاده از اپراتور مذكور تركيب شود.
مديريت خطا
در نسخه هاي قديمي SQL Server براي كشف و مديريت خطا از سيستم Error Handing استفاده مي شد. اين شيوه كشف خطا كه در زباني مثل ويژوال بيسيك 6 مورد هم استفاده قرار مي گرفت با استفاده از دستور GOTO مي توانست كنترل و خط اجراي روال را از يك محل به محل ديگر و در واقع از محل بروز خطا به محل مديريت و آشكار كردن آن ببرد و بدين وسيله پيغام خطايي را به كار نشان دهد. نسخه جديد SQL Server با تاثير از پلتفرم دات نت،از دستورات ويژه كشف و مديريت خطا با عنوان Exception Handling استفاده مي كند،اين روش با استفاده از دستورات جديد TRY\CATCH شيوه بهتري از مديريت خطا را به اجرا مي گذارد. در اين روش برخلاف روش قبل،تمام خطاهاي اتفاق افتادني مثل خطاهاي مربوط به تبديل داده ها به يكديگر Data Conversion به خوبي مديريت شده و از بروز خطاهايي كه منجر به اتمام ناقص عمليات يك روال يا تريگر مي شود جلوكيري به عمل مي آيد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
majid-ar
14-06-2008, 16:34
10 دليل قانع کننده استفاده از SQL Server 2005
از آنجائي که نسخه SQL Server 2005 داراي قابلیت ها و ویژگی های نوین و کاملتری نسبت به نسخه ها قدیمی مانند SQL Server 2000 می باشد ، و با توجه به اینکه متاسفانه در حال حاضر استفاده از این نسخه در کشور ما ایران بسیار کم رنگ تر از نسخه های قدیمی می باشد ، در این مقاله 10 دلیل اصلی را که شما را ترغیب به ترفیع به SQL Server 2005 می کند ، را به شکلی فهرست وار توضیح می دهم.
--------------------------------------------------------------------------------
در حال حاضر بسیاری از سازمان ها و شرکت ها از نسخه SQL Server 2000 استفاده می کنند. زمانی که شرکت Microsoft نسخه SQL Server 2005 را ارائه داد، بسیاری از مدیران IT و راهبران پایگاه داده با این سوال مواجه شدند: آیا لازم است ورژن SQL Server خود را upgrade کنیم ؟!
مسلما پیشرفت هایی که در نسخه SQL Server 2005 به چشم می خورد به قدری حائز اهمیت می باشند که شما به عنوان یک IT Manager یا DBA در صورت شناخت، خود را موظف به این امر خواهید دانست .
1. هر برنامه کاربردی که در حال حاضر کار می کند، بدون هیچ تغییری با SQL Server 2005 نیز کار خواهد کرد
ابزار SQL Server 2005 Management Studio جایگزین ابزار Enterprise Manager خواهد شد. اما شما با این ابزار جدید نیز قادر به مدیریت پایگاه های داده SQL Server 2000 نیز خواهید بود. البته از این ابزار جهت مدیریت SQL Server 6.5 و SQL Server 7.0 نمی توان استفاده نمود .
برنامه های کاربردی و سایت های شرکت یا سازمان شما بدون نیاز به انجام هیچ گونه تغییری به فعالیت ادامه خواهد داد. وجود این سازگاری بسیار مهم است. به اهمیت آن بیشتر فکر کنید.
2. SQL Server 2005 دارای ابزار های بیشتری می باشد
در نسخه های قدیمی SQL Server اجزا گوناگون مانند Analysis Services در بسته های نرم افزاری مختلفی قرار گرفته بود. اما در نسخه SQL Server 2005 شرکت مایکروسافت رویکرد بازاریابی خود را تغییر داده و تمامی اجزا را در یک بسته قرار داده است.
همان طور که در مقاله آموزش نصب SQL Server 2005 توضیح داده ام، شما می توانید سرویس ها و اجزا مختلف را هنگام نصب انتخاب کنید.
3. دسترسی آسان و یکپارچه به همه اجزا
SQL Server Management Studio یا SSMS به شما این امکان را می دهد که خیلی ساده و واضح به همه اجزا مانند Data Transformation Services ( DTS ) ، profiler ، Reporting Services ، Tuning Advisor و حتی SQL Server Integration SSIS )Services ) و OLAP ) Online Analytical Processing ) دسترسی داشته باشید.
این یکپارچگی موجب افزایش کارایی و هزینه کمتر آموزش می گردد. حتی اگر شما نسخه های SQL Server 2000 داشته باشید، توسط ابزار SSMS می توانید آن ها را مدیریت کنید.
4. بهره گیری از قدرت Net. برای ایجاد اشیا پایگاه داده
در این نسخه شما قادر می باشید از زبان های برنامه نویسی سطح بالا مانند Visual Basic.Net یا C#.Net جهت تولید اشیا پایگاه داده مانند Stored Procedures ، Functions و Triggers استفاده کنید. در واقع قرار گیری CLR در هسته اصلی SQL Server 2005 استفاده از هزاران class موجود در Net. را در پایگاه داده میسر ساخته است.
لازم به ذکر است استفاده از CLR برای تولید اشیا پایگاه داده زمانی ارزشمند است که شی ساخته شده دارای منطق عملیاتی پیچیده ای باشد، در واقع قدرت عملکرد اشایی که با CLR ساخته می شود، به مراتب بالاتر از اشیایی می باشد که با T-SQL ساخته شده باشد.
5. بهره گیری از مزایای Reporting Services
به یک قاعده کلی اشاره می کنم، " هر چیزی که Back end می تواند انجام دهد، باید Back end انجام دهد و نباید به Front end سپرده شود. "
برای مثال ساخت یک Query به صورت Dynamic معمولا کار سخت و زمان فرسایی می باشد که مستلزم کد نویسی زیادی در لایه Application می باشد. در واقع راه بهتر حالت دریافت پارامتر ها از کاربر و ارسال آن ها به یک Stored Procedure می باشد.
SQL Server Reporting Services این مفهوم را بسیار بهینه و کاراتر ساخته است. در نسخه های قدیم SQL Server ، گزارشات توسط برنامه های Front end مانند ( VB ، C++ ، Crystal Reports و ... ) صورت می پذیرفت .
در SQL Server 2005 شما می توانید از مزایای بسیار Reporting Services استفاده نمائید.
اول از همه شما می توانید کلیه منطق های مربوطه را از برنامه کاربردی جدا نموده و به Reporting Services بسپارید. پس از آن از هر Frond end دیگری می تواند جهت فراخوانی گزارشات به سادگی استفاده کنید.
6. Business Intelligence موجود در SQL Server 2005
سیستم های هوشمند و تحلیلی که بیشتر با عنوان سیستم های ( OLAP ) شناخته می شوند درون SQL Server 2005 قرار گرفته شده است. یکپارچگی هوش تجاری با موتور پایگاه داده قابلیت های فراوانی را به طراحان برنامه های کاربردی و تحلیل گران داده های سازمانی ارائه می دهد.
7. با DTS خداحافظی کنید و به SSIS خوش آمد گوئید !
SQL Server 2005 ویژگی جدیدی به نام SSIS را معرفی می کند که از نظر امنیتی ، مدیریتی و کاربردی بسیار مناسب عمل می کند. این ویژگی که جایگزین مانسبی برای DTS می باشد، عملیات ارسال و دریافت داده ها و تغییر آن ها را میان پایگاه های داده و فایل های مختلف به شکلی ساده و حرفه ای مدیریت می کند.
8. بهره گیری از مکانیسم امنیتی نوین و مطمئن با مدیریت آسان تر
توسط این نسخه می توانید دسترسی های خاص تر به افراد خاصی بدهید، طراحی جدید Schema به شما امکان می دهد به کاربران خود فقط دسترسی هایی را بدهید که به آن نیاز دارند.
9. قابلیت بسط پذیری در سازمان های بسیار بزرگ
بدون شک یکی از اصلی ترین مشکلات SQL Server 2000 ، عدم قابلیت یا بهتر است بگوئیم عدم کارایی این نسخه با حجم وسیعی از داده ها در سطح Enterprise بوده است. در واقع یکی از مهم ترین نقاط مورد توجه در طراحی این نسخه از SQL Server ، قابلیت رقابت این سیستم با رقبای تجاری مانند Oracle و DB/2 بوده است.
10. ارائه روش های جدید برای برنامه نویسی پایگاه داده
نسخه SQL Server 2005 دارای ویژگی های متعددی جهت افزایش کارایی و کاهش زمان برنامه نویسی می باشد.
این ویژگی ها شامل موارد زیر می باشد:
• ADO.Net version 2.0
• Hosted Common Language Runtime
• Security Enhancement
• Transact-SQL Enhancement
• Service Broker
• Web Services- HTTP Endpoints
• Native XML Support
• Embedded Reports
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
majid-ar
14-06-2008, 16:38
امنيت اطلاعات و عمليات در SQL Server
مقوله امنيت همواره يكي از مهمترين شاخههاي مهندسي نرمافزار و به تبع آن، يكي از حساسترين وظايف مديران سيستم بهخصوص مديران شبكه و يا مديران بانكهاي اطلاعاتي است. با تنظيم سطوح دسترسي براي كاربران شبكه يا بانكهاي اطلاعاتي شبكه، امنيت اطلاعات يا به عبارتي عدم دسترسي افراد فاقد صلاحيت به اطلاعات، تضمين ميگردد.
--------------------------------------------------------------------------------
مقوله امنيت همواره يكي از مهمترين شاخههاي مهندسي نرمافزار و به تبع آن، يكي از حساسترين وظايف مديران سيستم بهخصوص مديران شبكه و يا مديران بانكهاي اطلاعاتي است. با تنظيم سطوح دسترسي براي كاربران شبكه يا بانكهاي اطلاعاتي شبكه، امنيت اطلاعات يا به عبارتي عدم دسترسي افراد فاقد صلاحيت به اطلاعات، تضمين ميگردد. هر سيستمعامل، پلتفرم يا بانك اطلاعاتي، شيوههايي خاصي را براي برقراري قواعد امنيتي به كاربران معرفي مينمايد. در SQL Server هم روشهاي خاصي براي اين مقوله وجود دارد كه در اينجا به آنها ميپردازيم.
امنيت در ورود به سيستم
زماني كه يك بانك اطلاعاتي جديد را در SQL Server تعريف ميكنيد، با كليك سمت راست بر روي نام موتور پايگاه دادهاي يك سرور درEnterprise Manager و انتخاب قسمت Properties، در زبانه security، موتور بانك اطلاعاتي امكان انتخاب دو روش مختلف در معرفي و يا شناسايي كاربران مجاز براي ورود به سيستم يا همان عمل احراز هويت (Authentication) را در دسترس قرار ميدهد. البته بعد از ساخت يك بانك اطلاعاتي، با كليك سمت راست بر روي نام آن بانك و انتخاب گزينه Properties و سپس security هم ميتوان روش مورد استفاده را تغيير داد. (شكل 1) يكي از اين دو روش كه برمبناي ارتباط موتور اين پايگاه داده با اكتيودايركتوري ويندوز 2000 سرور بنا شده است و Windows only نام دارد، باعث ميشود تا كاربران از قبل تعريف شده در دامنه (Domain) يك شبكه مبتني بر ويندوز 2000 سرور، به رسميت شناخته شوند. در اين صورت نيازي به معرفي كاربر جديد و يا انتخاب دو نام كاربري براي يك نفر وجود ندارد و كاربر مذكور ميتواند از همان نام كاربري و رمز عبوري كه براي ورود به دامنه شبكه ويندوزي خود استفاده ميكند، براي اتصال به بانك اطلاعاتي هم استفاده كند. در روش دوم، ارايه مجوز دسترسي به كاربران با سيستمي خارج از محدوده دامنهويندوزي صورت ميگيرد. بدينصورت مدير سيستم مجبور است براي كليه كاربراني كه قصد اتصال به بانك را دارند، نام كاربري و رمزعبور جديدي را تعريف كند.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شکل 1
تعريف كاربران
در صورتي كه شيوه دوم تعريف كاربران را انتخاب كرده باشيد، بايد ابتدا ليستي از كاربران را به همراه رمزعبور مربوطهشان در قسمتي از صفحه Enterprise Manager كه با عنوان Security مشخص شده، معرفي كنيد. اين كار با كليك سمت راست بر روي گزينه Login در قسمت مذكور و سپس new login انجام ميگيرد. انتخاب يك نام كاربري به همراه ورود رمزعبور تنها كاري است كه بايد در اين جا انجام گيرد تا يك كاربر بهطور عمومي در ليست كاربران يك موتور پايگاده داده قرار گيرد.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شکل 2
از اين به بعد، وظيفه مدير سيستم تعيين دسترسي كاربران تعريف شده در قسمت security، به بانكهاي مختلف تعريف شده در پايگاه است.
اينكار نيز از دو طريق قابل انجام است. در روش اول، دسترسي به هر بانك اطلاعاتي از طريق همان قسمت security صورت ميگيرد. كافي است بر روي هر كاربري كه در اين قسمت تعريف كردهايد، كليك سمت راست كرده و ابتدا گزينه خصوصيات و سپس زبانه Database Access را انتخاب كنيد. پس از آن ليستي از كليه بانكهاي اطلاعاتي موجود در پايگاه به شما نمايش داده ميشود كه بايد بانك موردنظر را انتخاب كرده و در ستون Permit كليك موردنظر را انجام دهيد. پس از اين كار ميتوانيد يك نام نمايشي را براي نام كاربري مربوطه در ستون user تايپ كنيد. در اينجا به عنوان مثال امكان دسترسي كاربر mda را به بانك North wind فراهم نموده و نام نمايشي <مهيار داعيالحق> براي آن انتخاب شده است (شكل 2). همانطور كه مشاهده ميكنيد اين كاربر بهطور خودكار در گروه كاربري عمومي (public) بانك مذكور قرار داده ميشود. در روش دوم، به سراغ بانك اطلاعاتي موردنظر در ليست Databases رفته و با كليك سمت راست بر روي عبارتusers، گزينه New User را انتخاب ميكنيم. حال در پنجره نمايش داده شده، بايد از درون ليست Login name، يكي از كاربراني را كه قبلاً در قسمت security تعريف كردهايم انتخاب كرده و نام نمايشي آن را هم در قسمت user name تايپ كنيد. در اينجا هم بهصورت خودكار، كاربر مذكور در گروه كاربري Public براي آن بانك اطلاعاتي قرار ميگيرد. (شكل 3)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شکل 3
نقشها (Roles)
درSQL Server، ميتوان چندين كاربر را در يك گروه كاربري قرار داد. وقتي يك گروه كاربري تعريف ميشود، دسترسي آن به قسمتهاي مختلف يك بانك اطلاعاتي و كليه عملياتي كه اعضاء آن گروه ميتوانند انجام دهند، توسط مدير سيستم تعيين ميگردد. از اين به بعد هرگاه كاربر جديدي به آن گروه اضافه شود، نيازي به تعريف مجدد سطوح دسترسي و عملياتي براي وي وجود ندارد و سطوح دسترسي به صورت خودكار از طرف گروه به عضو جديد اعطا ميشود. درSQL Server بهصورت پيشفرض تعدادي نقش (Role) وجود دارد كه در واقع همان گروههاي كاربري مذكور ميباشد. هر كاربري كه توسط مدير سيستم به جمع كاربران اضافه ميشود به طور خودكار در نقش public ظاهر ميشود. نقشهاي از پيش تعريف شده و نحوه دسترسي و قابليت عملياتي آنها عبارت هستند از:
1- db-accessadmin
كاربران تعريف شده در اين نقش قادر خواهند بود، سطوح دسترسي و امنيتي كليه كاربران و نقشها را در قسمتهاي مختلف پايگاه تعريف كنند.
2- db-backupoperator
اين نقش مسؤول ايجاد نسخههاي پشتيبان از سيستم و اطلاعات درون آن است.
3- db-datareader
اين نقش قادر است كليه اطلاعات تمام جداول بانك اطلاعاتي موجود در سيستم را بخواند. مگر آنكه اطلاعات خاصي توسط مكانيسم Deny از دسترس او دور نگاه داشته شود.
4- db-datawriter
افراد تعريف شده در اين نقش قادرند تا كليه اطلاعات موجود در كليه جداول بانك را با استفاده از دستورات سهگانهInsert ،UPdate ،Delete تغيير دهند. مگر آن كه جدول يا فيلد خاصي توسط مكانيسم Deny از دسترسشان دور نگه داشته شود.
5- db-ddladmin
كاربران داراي اين نقش ميتوانند ساختار جداول، ديدها، روتينها و توابع يك بانك اطلاعاتي را با استفاده از دستورات سهگانه Create ،alter ،Drop، بسازند، تغيير دهند يا از بين ببرند.
6- db-denydatareader
اين نقش قادر به خواندن هيچ اطلاعاتي از جداول يا ساير قسمتهاي بانك نيست.
7- db-denydatawriter
اين نقش هم قادر به تغيير دادن هيچ يك از قسمتهاي بانك اطلاعاتي نيست.
8- db-owner
اين نقش قادر به انجام هر عملي در بانكاطلاعاتي ميباشد و بالاترين سطح موجود در يك بانك است.
9- db-securityadmin
مسؤول تعريف و تنظيم نقشها، كاربران و سطوح دسترسي در يك بانك است.
10- public
كاربران اين نقش قادرند تمام جداول، ديدها و ساير قسمتهايي كه توسط خودشان يا توسط كاربران متعلق به نقش dbowner ساخته شده را بخوانند و بنويسند.
اما به غير از نقشهاي مذكور، مدير سيستم هم ميتواند به تناسب، نقشهايي را در سيستم تعريف كند. به عنوان مثال فرض كنيد كه در يك واحد حسابداري، كارمندان عادي آن قسمت، موظف به وارد كردن اسناد مالي به يكي از جداول بانكاطلاعاتي با استفاده از يك برنامه ويژوال بيسيك هستند. مدير مالي نيز توسط دكمه موجود در همان برنامه قادر است يك روتين ذخيره شده (stored procedure) را فراخواني كرده تا اسناد وارد شده را تأييد كند. بنابراين فقط كاربر مربوط به مدير مالي حق اجراي روتين مذكور را دارد. برهمين اصل مدير پايگاه يك گروه به نام <حسابداران> را براي ورود اسناد و گروه ديگري را به نام <مدير مالي> براي مديريت آن دپارتمان و جانشينان احتمالي وي در نظر ميگيرد و براي گروه اول، اجراي روتين مذكور را در حالت ممنوع (Deny) و براي گروه دوم، در حالت مجاز (Allow) قرار ميدهد. شما ميتوانيد براي تعريف يك گروه يا نقش جديد، بر روي آيتم Roles كليك سمت راست كرده و گزينه New Role و سپس يك نام دلخواه را انتخاب كرده و آنگاه با كليك بر روي دكمه Add كاربران از قبل تعريف شدهتان را يك به يك به جمع آن گروه اضافه نماييد. شايان ذكر است كه هر كاربر ميتواند جزء چند گروه يا نقش باشد. در ادامه بايد در همان پنجره مذكور با كليك بر روي دكمه مجوز (Permission)، دسترسي و قابليت عملياتي آن گروه را هم تعريف كنيد. (شكل 4)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شکل 4
انواع مجوزها
1- جداول اطلاعاتي و ديدها
در مورد يك جدول بانك اطلاعاتي شما ميتوانيد امكان انجام پرسوجو، درج، تغيير، حذف و تعريف وابستگي را به ترتيب با علامت زدن در ستونهاي SELECT ،UPDATE ،DELETE و DRI براي يك گروه يا كاربر، ممكن يا غيرممكن كنيد. در ضمن در صورتي كه بخواهيد بر روي تكتك فيلدها، قواعدي را وضع كنيد ميتوانيد بر روي دكمه Colums هر جدول كليك كرده و امكان آوردن آن فيلد را در يك عبارت پرسوجو (SELECT) و يا امكان تغيير آن فيلد را در يك عمليات UPDATE براي گروه يا كاربر موردنظر مشخص كنيد. (شكل 5) لازم به ذكر است كه همين عمليات براي ديدهاي (View) يك بانك هم قابل انجام است.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شکل 5
2- روتينها و توابع
در مورد روتينها و توابع تعريفشده (User Defined Function) فقط يك ستون مجوز به نام Exec و آن هم به معني امكان استفاده يا عدم استفاده وجود دارد كه توسط مدير سيستم تنظيم ميشود. (شكل 6)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شکل 6
3- مجوزهاي اساسي
به غير از عملياتعمومي سيستم مثل جستجو، درج، تغيير، اجراي روتين و... كه در بالا ذكر شد، در SQL serverامكانات ويژهاي نيز براي كاربردهاي خاص در نظر گرفته شده كه فقط در مواقع لزوم به برخي كاربران يا نقشها اعطا ميشود. اگر بر روي نام هر بانك اطلاعاتي موجود در سيستم مثل North wind، كليك راست كرده و آيتم خصوصيات را انتخاب كنيد، در زبانه آخر يعني Permission ليستي از نقشها و كاربرهاي موجود در سيستم را مشاهده ميكنيد كه در جلوي نام هر يك از آنها و در 8 ستون به ترتيب از چپ به راست امكان ساخت جدول، ديد، روتين، مقادير پيشفرض، قواعد، توابع، پشتيبانگيري از اطلاعات و پشتيبانگيري از لاگها وجود دارد كه در مواقع خاصي قابل اعطا به كاربران با نقشهاي مختلف ميباشد. به عنوان مثال اگر برنامهنويس قصد داشته باشد تا براي فراهمساختن امكان تهيه يك گزارش پيچيده، به كاربري اجازه اجراي دستور CREATE VIEW را از داخل يكي از فرمهاي برنامه ويژوال بيسيك خود بدهد، بايد قبلاً مدير پايگاه را مطلع نموده تا وي ستون Create View را براي آن كاربر، فعال نمايد. همين عمل جهت ساخت جداول موقت براي گرفتن گزارش يا ساير عمليات پيچيده هم وجود دارد و از طريق ستون Create Table قابل انجام است. در اين صورت كاربر ميتواند با استفاده از دستوراتي كه منتهي به ساخت جدول ميشود مثل Create Table يا Select INTO جداول موقتي را توسط برنامه ويژوال بيسيك مورد استفاده خود ايجاد نموده و پس از پايان كار با استفاده از دستور DROP آنها را حذف نمايد. (شكل 7)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
Manager_66
14-06-2008, 19:29
دست درد نکنه مجید جان فقط باید یکی از موضوعات زیر در رابطه با sql server 2005 باشه نه خود معرفی و تاریخچش موضوعاتش این هاست :
Analysis services
• Integration services
• Storage & Filegroup
• Cursors
• Indexes(Clustered & Non Clustered)
• Database Tuninig Advisor
• Partitioning
• Triggers
• Replication
اگه در این رابطه لینک یا مطلب داری بذاری ممنون میشم
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.