• مشکی
  • سفید
  • سبز
  • آبی
  • قرمز
  • نارنجی
  • بنفش
  • طلایی
تعداد مطالب : 642
تعداد نظرات : 140
زمان آخرین مطلب : 3654روز قبل
آموزش و تحقيقات

آموزش اسمبلی قسمت دوم

اصول زبان ماشين و زبان اسمبلي

 

تمام كامپيوترها برنامه هاي به زبان ماشين را اجرا مي كنند. اين زبان در حقيقت تنها از 0 و 1 ها تشكيل شده است. در واقع زبان ماشين يك سري بيت هاي 0 و1 است كه كامپيوتر بوسيله ي آنها مي فهمد چه كاري را بايد انجام دهد. زبان ماشين از نظر انسانها بسيار پيچيده و گنگ است، براي همين به جاي زبان ماشين از زبان اسمبلي كه زباني سمبوليك است استفاده مي كنيم.

 

ما در ابتدا برنامه ها را به زبان اسمبلي مي نويسيم و سپس برنامه را بوسيله ي برنامه ي مترجم اسمبلر به برنامه ي زبان ماشين تبديل مي كنيم و سپس آن را اجرا مي نماييم.

 

ساختار كامپيوتر:

 

كامپيوتر داراي دو قسمت سخت افزار و نرم افزار است. سخت افزار كامپيوتر شامل مدارهاي الكترونيكي و الكترومكانيكي و نرم افزار آن از برنامه ها تشكيل شده است. براي كسي كه برنامه ايي به زبان اسمبلي مي نويسد اطلاع از طرز كار قسمتهاي مختلف و سخت افزار كامپيوتر بسيار ضروري است.

 

كامپيوتر دستگاهي است كه اطلاعات ديجيتالي را به عنوان ورودي مي گيرد و بر طبق دستوراتي كه در حافظه دارد يك سري اعمال و عمليات روي آنها انجام مي دهد و خروجي مورد نظر را توليد مي كند. كامپيوتر ها به انواع مختلفي از نظر سرعت و قدرت و كاربرد تقسيم بندي مي شوند. مانند كامپيوتر هاي شخصي (

 

واحد پروسسور يا

 

وظيفه ي اين واحد اجراي دستورات برنامه هاي كامپيوتر مي باشد كه از واحد محاسبه ومنطق و واحد كنترل و يك سري ثبات جهت درج اطلاعات و اعداد در آنها تشكيل شده است. عمليتها و دستورات در واحد محاسبه و منطق انجام مي شود و واحد كنترل وظيفه ي كنترل قسمتهاي مختلف كامپيوتر را داراست.

 

واحد ورودي:

 

مهم ترين واحد ورودي صفحه كليد (

 

واحد حافظه:

 

حافظه ي اصلي كامپيوتر داراي يك سري سلولهاي حافظه از جنس نيمه هادي مي باشد كه هر كدام دو وضعيت را شامل مي شوند(بيت). معمولاً مجموعه ي 8 بيت از اين سلولها را كه به طور همزمان نوشته يا خوانده مي شوند يك بايت (

 

واحد خروجي:

 

نتيجه محاسبات بوسيله ي واحد خروجي ، در اختيار كاربر قرار مي گيرد. متداول ترين وسايل خروجي عبارتند از مانيتور و انواع چاپگرها

 

باس يا گذرگاه:

 

ارتباط مداومي بين پروسسور و هر يك از دستگاه هاي ورودي و خروجي و حافظه برقرار است. ارتباط بين پروسسور و واحدهاي مختلف بوسيله ي سيمهايي به نام باس انجام مي شود. دركامپيوترهاي معمولي معمولاً تعداد اين سيمها بين 40 تا 200 سيم است. باس به قسمتهاي مختلفي تقسيم مي شود كه عبارت اند از: 1- باس آدرس: كه آدرس دستگاه هاي ورودي و خروجي روي آن قرار دارد 2- باس ديتا يا داده: كه اطلاعات از آنجا انتقال مي يابد. 3- باس كنترل: كه شامل و انتقال دهنده ي دستورات كنترلي است.

 

سيستم عامل:

 

سيستم عامل مجموعه ايي از برنامه هاي كامپيوتري به زبان ماشين است كه وظيفه ي نظارت و هدايت عملياتهاي كامپيوتر را دارد. درحقيقت سيستم عامل در نقش يك رابط ميان ماشين و انسان است. يعني رابطي بين كاربر و سخت افزار. به اين ترتيب سيستم عامل نرم افزاري است كه عمليات كامپيوتر ، انتقال اطلاعات بين دستگاه ورودي ، خروجي و .. را كنترل و نظارت مي نمايد. علاوه بر اين وظيفه ي ترجمه ي برنامه هاي كاربر ، فراهم ساختن تسهيلات براي ذخيره و بازيابي اطلاعات از ديسك و فراهم آوردن وسائل ارتباط ساده انسان با سخت افزار را دارد.

نظر یادتون نره...........

Personal Computer)، كامپيوترهاي WorkStation ، كامپيوترهاي Main Frame و سوپر كامپيوترها (Super Computer) ولي هر كامپيوتري از واحدهاي : ورودي ، خروجي ، حافظه، محاسبه و منطق (ALU= Arithmetic & Logical Unit)، گذرگاه (BUS) ، واحد كنترل و يك سري ثبات (Registers) تشكيل شده است. مجموعه ي واحد محاسبه و منطق و واحد كنترل و ثباتها را پروسسور يا CPU مي نامند كه وظيفه ي آن اجراي دستورات است.CPU:Keyboard) است كه اطلاعات را وارد كامپيوتر مي كند. اطلاعات شامل داده ها (Data) و دستورات برنامه كامپيوتري هستند. هر دستور شامل دو قسمت است. قسمتي به نام كد اجرا (Operation Code) و قسمت ديگري كه آدرس اطلاعات يا عملوند (Operand) مي باشد. كه معمولاً 32 بيت ( 8 بيت براي كد اجرا و 24 بيت براي آدرس اطلاعات) را اشغال مي كنند.Byte) مي نامند. البته در كامپيوتر هاي سريعتر و پر قدرت تر مجموعه هاي 16 يا 32 يا 64 بيتي استفاده مي شود كه به آن كلمه (Word) گفته مي شود. براي دستيابي به خانه هاي حافظه (بايت يا كلمه) به هر كدام از آنها يك آدرس تخصيص داده مي شود و همچنين دستورات نيز كه در حافظه قرار ميگيرند هر كدام شامل آدرس مجزايي مي شوند. اگر بخواهيم اطلاعات را از يك خانه حافظه بخوانيم بايد آدرس آن خانه از حافظه به حافظه داده شود و فرمان خواندن از واحد كنترل كامپيوتر براي حافظه ارسال گردد. مدت زماني كه نياز است تا اطلاعات در حافظه نوشته يا از آن خوانده شود زمان دستيابي حافظه (Access Time) گويند.
شنبه 12/8/1386 - 18:20
آموزش و تحقيقات

آموزش اسمبلی

 برای شروع کار

اول از کلیات شروع می کنم :

ثباتهای پردازنده :

هنگامی که یک برنامه اجرا می شود تقریباٌ تمام عملیات آن به وسیله ثباتهای ریزپردازنده انجام می شود . بعضی از ثباتها اعمال خود پردازنده را انجام می دهند و ثباتهای دیگر مکانهای ذخیره موقتی داده ها هستند .

1- ثباتهای عمومی : این ثباتها برای کار با داده ها مورد استفاده قرار می گیرند

AX(AH,AL)=Accumulator

برای ذخیره داده به طور موقت به کار می رود.

BX(BH,BL)Base

در آدرس دهی استفاده می شود

CX(CH,CL)Counter

برای نگهداری شمارشگر استفاده می شود

DX(DH,DL)Data

این ثبات برای ذخیره داده به طور موقت بکار می رود .

نظر یادتون نره.............

شنبه 12/8/1386 - 18:19
آموزش و تحقيقات

بررسي فارسي اصطلاحات كامپيوتري (قسمت چهارم)

Bridge :

وسيله ايست كه دو Lan مختلف يا دو سگمنت از يك Lan را كه از پروتوكل ارتباطي يكساني استفاده مي كنند، به يكديگر متصل مي سازد.
Bridge توانايي كنترل ترافيك، فيلتر كردن بسته هاي داده و ... را دارد.
توسط Bridge مي توان يك Lan با تعداد ايستگاههاي كاري زياد را به سگمنت هاي كوچكتري تقسيم كرد كه در نتيجه هر سگمنت مانند يك شبكه مستقل عمل كرده و برقراري ارتباط ايستگاهها راحتتر انجام مي شود.
هرگاه دو ايستگاه بطور همزمان اقدام به ارسال بسته هاي داده در شبكه كنند، تصادم (collision) رخ مي دهد كه مانع ارسال صحيح داده مي شود و هر چه تعداد ايستگاهها بيشتر باشد، احتمال رخ دادن تصادم نيز بيشتر مي گردد . Bridge با تقسيم شبكه به چندين سگمنت از احتمال رخ دادن تصادم مي كاهد.
همچنين اگر پيامي از يك ايستگاه براي ايستگاهي ديگر در همان سگمنت ارسال شود Bridge مانع انتشار پيام در سگمنت هاي ديگر شده و بار ترافيك ساير سگمنت ها را سنگين نمي كند.



Repeater :

ساده ترين جزء ارتباطي در شبكه Lan ، كه سيگنالهاي ارتباطي در كابلها را تقويت يا دوباره سازي مي كند، Repeater مي باشد.
سيگنالهاي ارتباطي در طول مسير كابلها بر اثر عواملي مانند نويز و غيره دچار تغيير شكل و يا ميرايي (ضعيف شدن تدريجي) مي شوند.
يك Repeater آنالوگ مي تواند سيگنالهاي دريافتي را تقويت نمايد، در حاليكه Repeater ديجيتال توانايي بازسازي سيگنالهاي دريافتي با كيفيتي نزديك به كيفيت اصلي را داراست. با استفاده از Repeater ها مي توان طول كابلهاي داده را افزايش داد و در نتيجه ايستگاههاي كاري كه در فاصله دورتري (البته تا حد معيني از فاصله) از يكديگر واقعند را نيز مي توان بهم متصل كرد كه در نهايت باعث گسترش فيزيكي شبكه مي شود.



Router :

وسيله ايست كه وظيفه انتقال بسته هاي داده بين شبكه هاي مختلف را بر عهده دارد.
يك روتر حداقل به دو شبكه LAN ، WAN و يا يك LAN و ISP متصل است. روتر اصطلاحا Protocol Independent است؛ يعني انتقال بسته هاي داده بين دو شبكه كه از پروتوكلهاي مختلف در ارتباطات داخلي خود استفاده مي كنند، را نيز به درستي انجام مي دهد.
روترها در GATEWAY ، يعني محل ارتباط دو شبكه قرار دارند.

در Header هر بسته داده، مشخصات ايستگاه گيرنده آن مشخص شده است. روتر پس از خواندن آدرس گيرنده، بر اساس جدول مسيريابي و الگوريتم هاي مسيريابي و با توجه به بار ترافيك شبكه، بسته را از كوتاهترين و كم ترافيك ترين مسير به مقصد مي رساند.
روترها براي تشخيص مسير مناسب، توسط پروتوكلهايي نظير ICMP با يكديگر ارتباط برقرار مي كنند.
دو نوع روتر داريم؛ روتر Static كه جدول مسيريابي آن توسط مدير شبكه مقدار دهي مي شود و روتر Dynamic كه جدول مسريابي را خودش تنظيم مي كند و بطور اتوماتيك آنرا Update مي نمايد.
همچنين اين روتر اطلاعات خود را با مسيرياب بعدي مبادله مي كند.



Gateway :

Gateway ؛ يك عضو در شبكه مي باشد كه به مثابه يك ورودي به شبكه اي ديگر است . طبق اين تعريف ISP شما كه باعث برقراري ارتباط شما با اينترنت مي شود يك Gateway است. Gateway مي تواند سخت افزاري يا نرم افزاري باشد و وظيفه اصلي آن تبديل پروتوكل ها به يكديگر است. مثلا اگر شما در يك LAN از پروتوكلي خاص استفاده مي كنيد، براي اتصال به اينترنت احتياج به Gateway داريد تا اين پروتوكل را به پروتوكل مورد استفاده در اينترنت تبديل كند.
Gateway همچنين به عنوان يك Proxy Server يا Firewall عمل مي كند.



Hub :

وسيله ايست داراي چندين پورت كه از آن براي اتصال ايستگاههاي كاري موجود در يك LAN (اعم از كامپيوتر، پرينتر و...) به يكديگر استفاده مي شود.
مي توان عملكرد آنرا شبيه يك Repeater چند پورته (Multi Port) دانست. هر ايستگاه توسط كابلي به يكي از پورتهاي موجود در هاب متصل مي شود و به اين طريق اطلاعات ارسالي از يك ايستگاه براي ساير ايستگاهها قابل دسترسي خواهد بود.
يك Passive Hub اطلاعات ارسالي از يك ايستگاه را فقط به يك ايستگاه ديگر ارسال مي كند ( و نه ساير ايستگاهها ) و در مقابل، Active Hub اطلاعات ورودي را روي همه پورتها كپي مي كند و بدين ترتيب اطلاعات براي همه ايستگاهها ارسال مي شود.
استفاده از هاب عمل حذف و اضافه كردن ايستگاهها به شبكه را بدليل عدم نياز به پيكربندي مجددف، آسانتر مي سازد.

نظر یادتون نره؟

شنبه 12/8/1386 - 18:18
آموزش و تحقيقات

بررسي فارسي اصطلاحات كامپيوتري (قسمت سوم)

فرمتي از پيش تعريف شده براي برقراري ارتباط بين دو كامپيوتر.بعبارت ديگر مجموعه اي از قوانين كه دو دستگاه براي انتقال موفق داده، از آنها پيروي مي كنند.
برخي از مواردي كه يك پروتوكل آنها را مشخص مي كند عبارتند از:
- نحوه تشخيص خطا و تصحيح خطاهاي احتمالي كه حين تبادل داده ممكن است اتفاق بيفتد.
- روش متراكم سازي داده ها - چگونگي اعلان پايان يك فريم داده توسط فرستنده - چگونگي اعلان دريافت يك فريم داده توسط گيرنده و نحوه ادامه ارسال داده در صورت عدم موفقيت گيرنده، در دريافت صحيح داده ها - طول هر فريم داده - و ....... تا كنون انواع مختلفي از پروتوكلها براي استفاده هاي مختلف طراحي شده اند و هر كدام داراي معايب و مزايايي هستند برخي از پروتوكلها ساده، برخي با قابليت اطمينان بيشتر و برخي داراي سرعت بالاتر هستند.
برخي از پروتوكلهاي متداول عبارتند از:
TCP/IP ، UDP ، FTP ، PPP و ... . توضيحات كامل در مورد عملكرد هر پروتوكل در متنهايي با نام RFC توسط IETF انتشار مي يابند ( مثلا RFC شماره 791 ، اطلاعات جامعي را در مورد پروتوكل IP ارائه مي كند) . IP :
مخفف Internet Protcol . اين پروتوكل فرمت بسته هاي داده (Ip Datagram) و نحوه آدرس دهي در آنها را مشخص مي كند.
اين پروتوكل بدليل نقايصي كه دارد با پروتوكل TCP همراه شده و ارسال و دريافت داده را ميسر مي سازد.
اين پروتوكل را مي توان شبيه سيستم پست معمولي دانست چون در آن بين فرستنده و گيرنده ارتباطي برقرار نمي شود و فرستنده اطلاعي از دريافت و يا عدم دريافت پيام توسط گيرنده ندارد و ديگر اينكه بسته هاي ارسالي الزاما با همان ترتيبي كه فرستاده شده اند توسط گيرنده دريافت نخواهند شد.
لذا براي رفع اين نواقص از پروتوكل TCP كمك گرفته مي شود كه باعث برقراري يك ارتباط مجازي بين فرستنده و گيرنده مي شود.
اين دو پروتوكل با يكديگر مدل TCP/IP را تشكيل مي دهند كه اساس كار اينترنت بر پايه اين مدل است. هم اكنون IPV4 (ورژن شماره 4 پروتوكل Ip) در اينترنت مورد استفاده قرار مي گيرد ولي با توجه به رشد سريع اينترنت و محدوديت آدرس دهي در اين ورژن ، IPV6 در آينده مورد استفاده قرار خواهد گرفت. TCP :
مخفف Transmission Control Protocol . در اين پروتوكل قبل از ارسال داده ها، بين فرستنده و گيرنده يك ارتباط مجازي ايجاد مي گردد.
TCP به هر بسته داده يك شماره سريال اختصاص مي دهد در مقصد اين شماره سريالها بررسي مي شود تا از دريافت تمامي بسته ها و ترتيب درست آنها اطمينان حاصل شود.
مقصد پس از دريافت هر بسته شماره بسته بعدي را به مبدا اعلام مي كند.
مبدا در صورتي كه پاسخ مناسبي از مقصد در مدت زمان معيني دريافت نكند، بسته قبلي را مجددا ارسال خواهد كرد.
بدين ترتيب بسته ها با اطمينان كامل (از دريافت در مقصد) در اينترنت منتقل مي شوند.
HTTP :
مخفف Hypertext Transfer Protocol . اين پروتوكل در وب مورد استفاده قرار مي گيرد.
در اين پروتوكل نحوه فرمت و چگونگي انتقال داده ها مشخص مي شود همچنين HTTP وظيفه وب سرور و مرورگر وب را در مواجهه با هر دستور مشخص مي كند.
مثلا وقتي شما آدرس يك سايت را در مرورگر وب خود وارد مي كنيد يك دستور HTTP به وب سروري كه صفحه مورد نظر شما در آن قرار دارد، فرستاده مي شود و باعث مي شود تا صفحه مورد نظر براي شما ارسال شود.
HTTP يك پروتوكل Stateless ناميده مي شود زيرا هر دستور در آن بطور مستقل و بدون توجه به دستورات قبل و بعد از آن اجرا مي شود.
به همين دليل است كه ايجاد وب سايتهايي كه متناسب با ورودي كاربر عكس العمل مناسب را انجام دهند، مشكل است. البته اين نقيصه HTTP توسط برخي تكنيكها نظير Activex , Java , JavaScript , Cookie برطرف شده است. FTP :
مخفف File Transfer Protocol . از اين پروتوكل در اينترنت براي تبادل فايلها استفاده مي شود.
عملكرد FTP نظير عملكرد پروتوكل HTTP براي دريافت يك صفحه وب از يك سرور يا SMTP براي انتقال نامه هاي الكترونيكي در اينترنت است. اين سه پروتوكل از پروتوكلهاي تابعه TCP/IP بشمار مي آيند.
از FTP غالبا براي دريافت فايل از يك سرور و يا ارسال فايل به آن استفاده مي شود (مثل ارسال صفحات وب ساخته شده از كاربر به سرور).

نظر یادتون نره؟

شنبه 12/8/1386 - 18:17
آموزش و تحقيقات

بررسي فارسي اصطلاحات كامپيوتري (قسمت دوم)

به برنامه يا قطعه اي كد گفته مي شود كه پس از اجرا در سيستم كپي هايي از خودش را به فايلهاي مورد نظر اضافه كرده و آنها را آلوده مي كند و بسته به نوع آن اعمال مختلفي را از ظاهر شدن پيغامي خاص در صفحه تا رساندن آسيبهاي بسيار جدي به سيستم انجام مي دهد.
ويروسها اين قابليت را دارند كه خود را تكثير كنند.
حتي ويروس ساده اي كه اقدام به توليد كپي از خود در سيستم ميكند مي تواند خطر آفرين باشد چون براي اين كار از منابع سيستم بهره مي گيرد و ممكن ياعث ايجاد وقفه در سيستم شود.
ويروسهاي خطرناكتر قابليت انتشار در شبكه ها و عبور از سيستمهاي امنيتي را دارند.
Micro Virus ها نوع خاصي از ويروسها هستند كه به جاي آلوده كردن فايلهاي اجرايي يا بوت سكتور، Document هاي Word را آلوده مي كنند.
Worm :
كرم را مي توان نوع خاصي از ويروس دانست كه براي انتشار از طريق شبكه طراحي شده اند.
كرمها معمولا از طريق ايميل يا برنامه هاي اشتراك گذاري فايلها ( p2p ) منتشر مي شوند.
كرمها ضمن آلوده كردن كامپيوتري كه در آن قرار دارد از طريق Contact هاي موجود در آن براي تمامي آنها ارسال مي شود و با عناوين فريبنده گيرنده را به گشودن فايل الحاقي ترغيب مي كند.
كرمها بدليل ارسال به كاربران بسيار زياد در زمان كم، ترافيك شبكه را بسيار بالا برده و باعث كند شدن فعاليت Mail Server ها مي شود.
Dropper :
همچنين با نامهاي Virus Dropper و Dropper Program شناخته مي شود.
برنامه اي است كه پس از اجرا يك ويروس اسب تروا يا يك كرم را درون كامپوتر شما بارگذاري مي كند.
Dropper خود يك ويروس نيست و خواص ويروس نظير تكثير شدن را ندارد.
شايد بيشتر بتوان آنرا شبيه اسب تروا دانست كه حاوي كدهاي مخرب است و توسط برنامه هاي ويروس ياب قابل شناسايي نيست خوشبختانه استفاده از Dropper ها غير متداول است وگرنه مطمئنا مشكلات بزرگي را باعث مي شدند.
Spyware :
نام ديگر آن Ad-Aware است. Spyware به هر برنامه اي كه به جمع آوري اطلاعات شخصي افراد هنگام اتصال به اينترنت مي پردازد اطلاق مي شود.
Spywareها معمولا جزئي پنهاني درون برنامه هاي رايگان و يا برنامه هايي با مدت استفاده محدود ( Freeware Or Shareware ) هستند كه مي توان آنها را از اينترنت دانلود كرد.
Spywareها پس از نصب به Monitor كردن فعاليتهاي شما در اينترنت مي پردازند و اطلاعات كسب شده را در پس زمينه ارتباط اينترنتي شما براي نويسندگانش مي فرستد.
Spywareها قابليت جمع آوري اطلاعات در مورد آدرسهاي ايميل، شماره كارتهاي اعتباري و حتي پسوردهاي شما را دارند.
Spyware را مي توان شبيه اسب تروا دانست چون در هر دو مورد شما هنگام نصب يك برنامه اين برنامه ها را نيز ناخواسته در سيستمتان نصب مي كنيد.
يكي از روشهاي معمول قرباني شدن نصب برنامه هايي است كه براي تبادل فايل ها در اينترنت وجود دارد ( اين برنامه ها peer-to-peer ناميده مي شوند نظير Kaaza ). نكته دردناكتر در مورد Spywareها اينست كه اين برنامه ها چون براي فعاليت از منابع سيستم شما استفاده مي كنند ممكن است باعث ناپايداري سيستم و يا حتي Crash بشود.
همچنين اين برنامه ها از پهناي باند اتصال اينترنتي شما مي كاهند.
( بدليل استفاده از اتصال اينترنتي براي ارسال اطلاعات به سرقت رفته ) چون Spywareها برنامه هاي اجرايي مستقلي هستند قابليت هاي ديگري از جمله Monitor كردن كليد هاي فشرده شده كيبورد، گشتن بدنبال فايل يا برنامه اي خاص در سيستم، نصب Spyware هاي ديگر خواندن Cookie ها و تغيير صفحه وب پيش فرض را دارند.
Licensing Agreement ها كه قبل از نصب اكثر برنامه ها بايد با مفاد آن موافقت كنيد ممكن است در مورد نصب Spyware توسط برنامه مورد نظر به شما هشدار دهد ( البته در جايي كه كمترين احتمال ديده شدن را دارد ) ولي از آنجا كه هيچكس تمايلي به خواندن متن طولاني Licensing Agreement را ندارد Spywareها را با موافقت خودتان در سيستم نصب مي كنيد.
Trojan Horse :
برنامه ايست مخرب كه ظاهرعادي و بي آزاري دارد.
اين برنامه پس از اجرا در كامپيوتر هدف، اختيار كامل آنرا بدست نفوذ گران مي دهد و به آنها اجازه انجام هر كاري را در سيستم مورد حمله مي دهد.
اسب تروا قابليت تكثير خود را ندارد ولي مي تواند حامل ويروس يا كرم باشد.
يك اسب تروا از دو قسمت تشكيل شده است:
يك قسمت كه بايد توسط طعمه دانلود و اجرا شود كه معمولا حجم كمي دارد (زير kb 100 ) مثلا برنامه اي كه ادعا مي كند كشنده فلان ويروس است ممكن است خود يك اسب تروا باشد، و قسمت دوم اسب تروا كه روي كامپوتر مهاجم قرار دارد و پس از اجراي جزء ديگر برنامه روي كامپيوتر قرباني و دريافت آدرس IP قرباني توسط مهاجم اين دو قسمت برنامه با هم ارتباط برقرار كرده و مهاجم قادر خواهد بود در كامپيوتر قرباني مانند كامپيوتر خود Expelor كند و به حذف اضافه و تغيير هر چيز مورد علاقه اش بپردازد.
همانطور كه اشاره شد طعمه يك اسب تروا شدن به اين آساني ها نيست زيراخود فرد بايد مرتكب اين اشتباه بشود.
البته بعضي سايتها اين كار را براي شما انجام مي دهند! كه اين مشكل هم با نصب يك فايروال مناسب حل شدني است. به حملاتي از اين دست Back Door مي گويند چون شبيه زماني است كه شخصي از در پشتي منزل وارد شود و بدون اطلاع شما و در حضور خودتان به شما آسيب برساند.
عبارت اسب تروا يا Trojan Horse برگرفته از يكي از داستانهاي كتاب ايلياد هومر نويسنده يونان باستان است كه در آن مهاجمان اسب بزرگ چوبي را يه نشانه صلح و آشتي ( البته با تعدادي جنگجو در درون آن ) به درون شهر محاصره شده تروا مي فرستند و ...!

نظر یادتون نره؟

شنبه 12/8/1386 - 18:16
آموزش و تحقيقات

آشنايي با اصطلاحات كامپيوتري (قسمت اول)

 بعضي از مودمها داراي سوئيچي هستند که به شما اجازه انتخاب بين Half-duplex و Full-duplex را ميدهد.
انتخاب درست براي اين سوئيچ بستگي به برنامه اي دارد که از مودم براي انتقال داده استفاده ميکند.
در حالت Half-duplex هر کاراکتر انتقال داده شده بلافاصله بر روي صفحه نمايش شما ظاهر مي شود (به همين دليل به اين حالت Local Echo هم گفته مي شود). در حالت Full-duplex داده منتقل شده تا زماني که توسط طرف مقابل دريافت نشده و به شما بازگشت نداده شده است، به نمايش در نمي آيد (Remote Echo). اگر شما برنامه اي ارتباطي را اجرا مي کنيد و در آن هر کاراکتر دوبار ظاهر مي شود احتمالا مودم شما بجاي اينکه در حالت Half-duplex باشد در حالت Full-duplex است، در نتيجه هر کاراکتر دو بار اکو مي شود يک بار Local Echo و بار ديگر Remote Echo . DRM ؛ مخفف Digital Rights Management مي باشد و سيستمي است براي حفاظت از حق کپي رايت داده هاي موجود در اينترنت و ساير رسانه هاي ديجيتال توسط فعال نمودن توزيع مطمئن داده ها و يا غيرفعال نمودن توزيع غيرقانوني داده ها. مثلا يک DRM سيستم از مالکيت معنوي دارنده اثر توسط Encrypting حفاظت مي کند بنابراين داده فقط توسط کاربران مجاز قابل استفاده خواهد بود.
روش ديگر علامت گذاري محتوا توسط Digital Watermark يا روشهاي مشابه، براي جلوگيري از توزيع آزادانه اطلاعات است. LCP :
مخفف Link Control Protocol مي باشد.
اين پروتکل بخشي از پروتکل PPP است.در ارتباطات ppp ( مثل ارتباط شما با ISPتان از طريق خط تلفن ) هم دستگاه فرستنده و هم دستگاه گيرنده ي پيام، بسته هاي LCP را براي تصميم گيري در مورد چگونگي انتقال بسته هاي داده مي فرستند.
يک بسته ي LCP هويت شما را هنگام برقراري ارتباط با ISP بررسي مي کند و سپس در مورد پذيرش يا رد درخواست اتصال شما تصميم مي گيرد.
اين بسته همچنين سايز قابل قبول بسته هاي داده تبادلي بين طرفين را مشخص مي کند.
همچنين بدنبال مشکل در پيکربندي ارتباطي مي گردد و در صورت وجود مشکل به ارتباط خاتمه مي دهد.
انتقال داده در شبکه، تا زماني که LCP هويت شما را تائيد نکرده باشد ممکن نخواهد بود.
Dongle :
وسيله ايست که براي کنترل دسترسي به برنامه اي خاص، به کامپيوتر متصل مي شود.
اين وسيله موثرترين ابزار براي محافظت از نرم افزار در برابر کپي است. در کامپيوترهاي PC اين وسيله به پورت موازي و در کامپيوترهاي MAC به پورت ADB متصل مي شود.
تمامي اطلاعات ورودي و خروجي پورت از Dongle عبور مي کنند ولي Dongle مانع عبور آنها نمي شود و مي توان از پورت، همانند زماني که هيچ وسيله اي به آن متصل نيست استفاده کرد.
چندين Dongle را مي توان به يک پورت متصل کرد.
USB :
مخفف Bus Universal Serial مي باشد كه يك استاندارد Bus خارجي است كه نرخ انتقال داده در آن به 12Mbps مي رسد.
هر USB پورت مي تواند براي اتصال 127 وسيله جانبي، مثل موس، مودم، كيبورد، دوربين ديجيتالي و ... مورد استفاده قرار گيرد ( براي اين كار يه يك USB Hub احتياج داريد). USB از Hot Plugging و Plug And Play پشتيباني مي كند.
اين فناوري در سال 1996 عرضه شد؛ در آن زمان توليد كنندگان كمي اين پورت را در محصولاتشان عرضه مي كردند ولي در سال 1998 و با محصول پر فروش iMac اين فناوري عمومي شد و امروزه اين فناوري تا حدي گسترده شده كه تمامي MotherBoard هاي جديد داراي USB پورت هستند.
هم اكنون دو نوع USB پورت وجود دارد USB 1.1 و USB 2.0 كه اختلاف آنها در سرعت تبادل اطلاعات با كامپيوتر است. اينطور انتظار ميرود كه USB كم كم جاي پورتهاي سري و موازي را بگيرد.
در اينصورت وسايلي مانند مانيتور، پرينتر، كيبورد و موس را بايد به USB پورت MotherBoard متصل كنيد.

نظر یادتون نره؟

شنبه 12/8/1386 - 18:15
آموزش و تحقيقات
برقراری ارتباط و امنیت درSQL Server

 


گرد آورنده : سپيده سوزنچي

بانكهاي اطلاعاتي حاوي حجم بسيار زيادي از داده هايي هستندكه چنانچه به دست اشخاص غير مسئول برسند، مي تواند براي شركت وافراد شركتتان بسيارزيان آورباشدSQL . سرورسيستم امنيتي با استحكامي دارد كه به شما امكان مي دهد تا سرويس دهنده را درسطحي قفل كنيد كه بتوانيد دستيابي به سرويس دهنده، ودستيابي به بانك اطلاعاتي رابه ستونهاي خاصي از يك جدول محدود كنيد.
عناوين مهم اين فصل عبارتند از:
نياز به امنيت
اصول امنيت SQL سرور
مدهاي امنيت
برقراري ارتباط با سرويس دهنده وكاربران بانك اطلاعاتي
نقش ها

نيازبه امنيت
در اينجا لازم است نياز به امنيت را به درستي درك كنيد، خطرات امنيتي از سه ناحيه متصور مي شوند:
1)فراميني كه از خارج به سيستم وارد ميشوند:
مزاحمين خارجي افرادي هستند كه كوشش ميكنند، تا خارج ازشركت به سيستم هايتان دستيابي پيدا كنند. اين افراد به دلايل مختلف چنين كارهايي را انجام مي دهند.
به عنوان مثال ممكن است اين كاررا صرفا براي اذيت كردن و شوخي انجام دهند واطلاعات را به شركت ديگري بفروشند .
2)افرادي كه در شركتتان كار ميكنند:
احتمالا متداولترين نوع مزاحمت براي سيستمتان به شمار مي آيند. كه انگيزه نهايي آنها، دستيابي به داده هایي است كه نبايد آنها را ببينند.
3)مزاحمت تصادفي:
مزاحمت تصادفي متداول است.در اين حالت كاربر وارد سيستم ميشودو اطلاعات بيشتري نسبت به آنچه انتظار دارد به دست مي آورد.

اصول امنيتSQL سرور
SQL سرور واژه ها ومفاهيم زيادي دارد كه بايد با آنها آشنا شويد.اين مفاهيم شامل مراحلي است كه SQL سروربا انجام آنها به يك كاربر امكان مي دهد تا تحت مدهاي امنيتي مختلف، كه به زودي بررسي خواهند شد، با يك بانك اطلاعاتي ارتباط برقرار كنند. اين واژه ها عبارتند از:
1.ID برقراري ارتباط( Login ID): ID برقراري ارتباط، بخشي از اطلاعات اعتباركاربراست كه كاربر براي دستيابي به SQL سرور ارائه مي دهد.
2.كلمه عبور: هركلمه عبور صرفا رشته اي ازكاراكترها است كه براي اعلام اعتباركاربري، كه با يكID خاص با سرويس دهنده ارتباط برقرار مي كند، به سرويس دهنده ارسال مي شود.کلمات عبور خوب باید حرفی عددی باشندو طول آنها نیز حداقل 6 کاراکتر باشد.
3.ID کاربر: یک مرحله دیگر برای دستیابی به بانک اطلاعاتی خاص است، ID برقراری ارتباط و کلمات عبور، شما را تنها به سرویس دهنده میرسانند.
اگر تا به این حد پیش روید، به هیچ یک از بانکهای اطلاعاتی آن سرویس دهنده دستیابی نخواهید داشت.
بعد از بررسی درستیID برقراری ارتباط توسطSQLسرور و تعیین اینکه کاربر مجاز به دستیابی سرویس دهنده است، وی می بایست یک بانک اطلاعاتی را برای کار انتخاب کند وبعد ID برقراری ارتباط را با تمامID های کاربری آن بانک مقایسه می کند تا اطمینان حاصل شود که کاربر به بانک اطلاعاتی دستیابی دارد.
4.نقش ها:هر نقش روشی برای گروه بندی کاربران دارای کارهای مشابه به منظور آسان شدن مدیریت است. نقش ها در نگارش های قدیمیSQL سرور تحت عنوان گروه مطرح بودند. به جای تخصیص مجوز به هر یک از کاربران بانک اطلاعاتی، به راحتی می توانید یک نقش ایجاد کنید و بعد از قراردادن کاربران به آن نقش، مجوزها را به آن نقش تخصیص دهید.
5.نقش برنامه کاربردی: یک نقش ویژه است که امکان دستیابی به داده های موجود در بانک اطلاعاتی را تنها به برنامه های کاربردی خاص می دهد. کاری که این نقش انجام می دهد، آن است که کاربران را مجاب می کند تا از طریق برنامه کاربردی به داده های بانک اطلاعاتی دستیابی پیدا کنند. این کار کاربران را مجاب به استفاده از برنامه کاربردیی می کند که خصوصا برای دستیابی به داده ها نوشته شده و از دستیابی برنامه های کاربردی دیگر جلوگیری میشود.
6.گروه های ویندوزNT :امنیتSQL سرور، شدیدا بر امنیت ویندوزNT بیان شده است
گروه های ویندوزNT مستقیما به نقش هایSQL سرورقابل نگاشت هستند، از این رو هر کاربری که جزئی از آن گروه باشد، به طور خودکار بهSQL دستیابی خواهد داشت.
فرآیند بررسی اعتبار: وقتی کاربری اقدام به دستیابی به سرویس دهنده میکند، 4چیز کنترل می شود
1.امنیت در سطح شبکه: که نخستین سطح امنیت است. کاربران در بیشتر مواقع با یک شبکه ویندوزNT ارتباط برقرار خواهند کرد، اما با هر شبکه دیگری که در کنار شبکه مذکور وجود داشته باشد، نیز می توانند ارتباط برقرار کنند. کاربر باید یکID برقراری ارتباط و یک کلمه عبور معتبر شبکه وارد کند و اگر نه در همین سطح متوقف خواهد شد.
2.امنیت در خود سرویس دهنده: که دومین سطح امنیت است. وقتی کاربر به این سطح می رسد، می بایست یک ID برقراری ارتباط و یک کلمه عبور معتبربرای پیشروی ارائه کند. بسته به مد امنیتی که در سرویس دهنده به کار میبرید،SQL سرور ممکن است بتواندID برقراری ارتباط با ویندوزNT را تعیین نماید.
3. نیاز به یکID کاربری در بانک اطلاعاتی: که سومین سطح امنیت است. هیچ کلمه عبوری در این سطح مطرح نیست. در عوض،ID برقراری ارتباط توسط مدیر سیستم باID کاربری نگاشت می شود.
4.ارتباط امنیت با مجوزها: آخرین سطح امنیت است.SQL سرور کنترل میکند کهID کاربریی که کاربر از طریق آن به سرویس دهنده دستیابی پیدا کرده است، مجوزهای دستیابی به شیءهای مورد نظر را داشته باشد.این امکان وجود دارد که دستیابی فقط برای برخی شیءها باشدو نه تمام شیءها.
مدهای امنيت
SQL سروردو روش مختلف برای بررسی اعتبار کاربران ومعرفی آنها به سرویس دهنده دارد.
1.روش نخست: بررسی اعتبار ویندوزNT : ویندوزNT می تواند از ویژگیهای بسیار بیشتری در سیستم امنیتی خود استفاده کند، از جمله: حداقل طول برای کلمات عبور، تاریخ انقضای کلمات عبور، جلوگیری از برقراری ارتباط بعد از چند اقدام ناموفق. به هنگام استفاده از این روش، کاربر برای دستیابی به سرویس دهنده نیازی به ارائهID برقراری ارتباط و کلمه عبور ندارد، در عوضSQL سرور نام کاربر را از ویندوزNT می خواهد وآن را با فهرست کاربران مجاز مقایسه می کند. مراحل زیر شما را درآماده سازیSQL سرور برای استفاده از روش بررسی اعتبار ویندوزNT یاری می کنند:
1 .SQL Server Enterprise Manager را باز کنید وبا سرویس دهنده ای که می خواهید مد امنیتی آن را تغییر دهید ارتباط برقرار کنید.
2.گزینه Properties را انتخاب کنید.
3.تب Security را پيدا کنید وآن را برگزینید.
4.گزینه Windows NT Authentication را انتخاب کنید.
5.SQL Server را دوباره راه اندازی کنید.
2.روش دوم: بررسی اعتبار ترکیبیSQL سرور: این روش کاربررا مجاب به برقراری ارتباط باسرویس دهنده دریکی از حوزه های ویندوز NT می کند. این روش برای محیط های ترکیبی مناسب نیست چرا که بعضی از سرویس گیرنده ها اصلآ نمی توانند با ویندوزNT ارتباط برقرار کنند. این حالت، یک روش بررسی اعتبارازطریق SQL سرور نیزدرست می کنند. چون این روش لایه های بیشتری دارد، پیچیده ترنیز است.
مراحل زیرشما را درآماده سازی SQL سروربرای استفاده ازروش بررسی اعتبارترکیبی SQL سروریاری می کنند:
1.SQL Server Enterprise Manager را باز کنید وبا سرویس دهنده ای که می خواهید مد امنیتی آن را تغییر دهید ارتباط برقرار کنید.
2.گزینه Properties را انتخاب کنید
3.تب Security را پيدا کنید وآن را برگزینید
4.گزینه Windows NT SQL Server and را انتخاب کنید.
5.SQL Server را دوباره راه اندازی کنید.

برقراری ارتباط باسروس دهنده وکاربران بانک اطلاعاتی
همانند کارهای دیگری که درSQL سرورانجام می دهید، روشهای مختلف زیادی برای ایجادID های برقراری ارتباط وID های کاربری وجود دارد. نخستین روش برای انجام این کارازطریق یک ویزارد درSQL Enterprise Manager است. این ویزارد شما را گام به گام در ایجاد یک ID برقراری ارتباط ویک ID کاربری یاری می کند
روش دوم برای ایجاد ID ها، استفاده از رویه های ذخیره شده است. اگراز این روش استفاده کنید، درصورت نیاز می توانید همان ID هارا درتمام سرویس دهنده ها ایجاد کنید. آخرین روش، ایجاد مجزای آنها در SQL Enterprise Manager است.

گزینه دیگری که برای افزودن یک ID کاربر دارید، ازرویه های ذخیره شده واجرای SQL Query Analyzer است.
برای بررسی اعتباربا ویندوزNT باید ازرویه ذخیره شده sp-grantloginاستفاده کنید.
وقتی ازروش بررسی اعتبار SQL سروراستفاده می کنید،ازرویه ذخیره شده sp-addloginاستفاده کنید.
قالب sp-grantlogin به شکل زیراست:
sp-grantlogin [@loginname= ]’login’
نامی که پس از sp-grantlogin باید مشخص شود،نام کاربری ویندوزNT و نام حوزه ای است که کاربر در آن قرار دارد.
به عنوان مثال، برای اینکه کاربری به نامMrMoney از حوزهMonopoly را بهSQL سرور بیفزایید، می بایست دستور زیر را اجرا کنید:
sp-grantlogin’Monopoly/Mr Money’
دستور بالا مجوز دستیابی به بانک اطلاعاتی را به آن کاربر اعطا می کند، اما دستیابی بیشتر را برای وی فراهم نمی کند.

نقش ها
نقش ها اساسا گروههایی هستند که می توانید برای گروه بندی کاربرانی به کار برید که نیازهای دستیابی آنها مشابه است.
انواع نقش های مختلفی که می توانید به کار برید عبارتند از:
1.نقش های از پیش تعریف شده سرویس دهنده
2.نقش های از پیش تعریف شده بانک اطلاعاتی
3.نقش عمومی
4.نقش های شخصی بانک اطلاعاتی

•نقش های از پیش تعریف شده سرویس دهنده
نقش های سرویس دهنده برای آن هستند تا برخی از کارهای مدیریتی سرویس دهنده را به اشخاص دیگر واگذار کنید.
هفت نقش از پیش تعریف شده سرویس دهنده به شرح زیر هستند:
sysadmin : اعضای این نقش می توانند هر عملی را در سرویس دهنده انجام دهند. این نقش، مشابهaccount ی به نام sa در نگارش های پیشینSQL سرور است.
serveradmin : اعضای این نقش می توانند پیکربندی مشخصات سرویس دهنده را انجام دهند.
setupadmin : اعضای این نقش مجازند پیوندهای سرویس دهنده ها را حذف یا اضافه کنند.
Securityadmin : اعضای این گروه می توانند برقراری ارتباط با سرویس دهنده را مدیریت کنند.
processadmin : اعضای این گروه می توانند هر فرآیندی را که درSQLسرور اجرا می شود را مدیریت کنند.
dbcreator : این گروه مجوز ایجاد بانکهای اطلاعاتی در سرویس دهنده را دارد.
diskadmin : این گروه مجوز ایجاد و مدیریت فایل ها در دیسک را دارد.

•نقش های از پیش تعریف شده بانک اطلاعاتی
نقش های از پیش تعریف شده بانک اطلاعاتی به کاربران امکان می دهند تا عملیات گوناگونی را انجام دهند.
نه نقش از پیش تعریف شده بانک اطلاعاتی عبارتند از:
db-owner: اعضای این گروه به عنوان مالک بانک اطلاعاتی تعریف می شوند.
db-accessadmin:عضویت در این گروه به کاربر امکان می دهد تا کاربران ویندوزNT وSQL سرور را در بانک اطلاعاتی حذف یا به آن بیفزاید.
db-datareader: اعضای این گروه می توانند تمام داده های جداول کاربری بانک اطلاعاتی را ببینند.
db-datawriter: اعضای این گروه مجوز افزودن، تغییریا حذف داده های تمام جداول کاربری بانک اطلاعاتی را دارند.
db-ddladmin: به کاربرامکان می دهد تا شئ های یک بانک اطلاعاتی راحذف، اضافه یا اصلاح کند.
db-securityadmin: اعضای این گروه می توانند نقش ها و اعضای نقش های بانک اطلاعاتیSQL سرور را مدیریت کنند.
db-backupoperator: اعضای این نقش مجوز تهیه نسخه پشتیبان از بانک اطلاعاتی را دارند.
db-denydatareader: اعضای این گروه نمی توانند هیچیک از داده های بانک اطلاعاتی را ببینند.
db-denydatawriter: اعضای این گروه هیچ مجوزی برای تغییر داده های بانک اطلاعاتی ندارند.


•نقش عمومی
نقش عمومی یک نوع نقش بانک اطلاعاتی ویژه است که تمام کاربران بانک اطلاعاتی عضوی از آن هستند. این نقش به هنگام ایجاد تمام بانک های اطلاعاتی ایجاد می شود.
فایده این نقش زمانی مشخص می شود که می خواهید مجموعه ای از مجوزهای پیش فرض را به تمام کاربران بدهید.
•نقش های شخصی بانک اطلاعاتی
نقش های شخصی بانک اطلاعاتی، نقش هایی هستند که مدیر سیستم برای مقاصد ویژه ایجاد می کند. این نقش ها توانایی تخصیص مجوزهای ویژه ای را فراهم می کنند که در نقش های از پیش تعریف شده موجود نیستند. قوانینی که می بایست به هنگام ایجاد این نقش ها به خاطر داشته باشید عبارتند از:
نقش های شخصی بانک اطلاعاتی در محدوده یک بانک اطلاعاتی ایجاد می شوند و در وسط چند بانک اطلاعاتی قابل گسترش نیستند.
کاربران در هر لحظه نمی توانند به بیش از یک نقش شخصی بانک اطلاعاتی تعلق داشته باشند.
نقش های شخصی می توانند حاویID های برقراری ارتباط ویندوزNT،IDهای برقراری ارتباطSQLسرور و دیگر نقش های SQLسرور باشند

نظر یادتون نره؟

شنبه 12/8/1386 - 18:14
آموزش و تحقيقات

آموزش SQL Server (قسمت چهارم)

در ادامه مطالب آموزش SQL حال به بحث ديدها (view) مي پردازيم. ديد در اصل يك جدول مجازي است كه محتوي آن توسط يك پرس و جو تعريف مي گردد. همانند جدول ديد هم داراي سطر و ستونهايي مي باشد. مي توان به موارد زير به عنوان مزاياي ديد اشاره كرد : ديدها به كاربران اجازه ميدهند تا بر روي داده هايي كه نياز دارند متمركز شوند. بنابر اين داده هاي غير ضروري ميتوان از ديد خارج كرد. ديدها امنيت داده ها را نيز افزايش ميدهند چراكه كاربر فقط داده هايي را مي بيند كه در ديد وجود دارند. ديدها به كاربران اجازه ميدهند تا داده ها را به روشهاي متفاوت مشاهد نمايند. ديدها ميتوانند براي مبادله داده ها با ساير برنامه هاي كاربردي بكار روند. و .... ايجاد ديد : وقتي ديدي را ايجاد ميكنيد نام آن مي بايست در بين نام جداول و ديگر ديدهايي كه كاربر مورد نظر آنها را ساخته , يكتا باشد.در SQL Server 7.0 شما امكان ايجاد شاخص بر روي ديدها را نداشتيد , ليكن اين امكان در SQL 2000 اضافه شده است. مراحل ايجاد يك ديد : 1- erprise Manager را باز كرده و بر روي Databases كليك كرده و پايگاه داده اي را كه مي خواهيد ديد در آن ايجاد كنيد . باز كنيد. 2- روي Views كليك راست كرده و سپس گزينه New View... را انتخاب كنيد. 3- در پنجره بعدي كليك سمت راست كرده و گزينه Add Table... را انتخاب كنيد. 4- دكمه هاي Table و يا Views جدول و يا ديد هاي مورد نظر را انتخاب نماييد. و بر روي دكمه Add كليك نماييد. اين كار را براي تمام جداول و يا ديدهاي مورد نظر تكرار كنيد و سپس بر روي دكمه Close كليلك نماييد. در قسمت Column از پانل مشبك , ستونهايي را كه ميخواهيد در ديد به آنها ارجاع نماييد انتخاب كنيد. اگر ميخواهيد ستوني در مجموعه نتيجه ديده شود گزينه Output متناظر با آن مي بايستي حتما تيك داشته باشد. در ستون Criteria شرط را بنويسيد. چند شرط را ميتوانيد در ستونهاي OR تكرار كنيد. براي گروه بندي برروي ستون Criteria كليك سمت راست كرده و گزينه Group By را انتخاب نماييد. در اينصورت شما قادر خواهيد بود از توابعي همچون Sum استفاده كنيد. تذكر : اگر Group by را انتخاب كرده باشيد. تمام شرايط كه در ستون Criteria بنويسيد به عنوان شرايط Having در نظر گرفته ميشوند. براي اينكه اين محدوديتها به شرط Where اضافه گردند , بر روي پانل مشبك متناظر كليك كرده و از ليست مورد نظر گزينه where را بجاي Group by انتخاب كنيد. تذكر 2 : در ستون Alias شما ميتوانيد يك اسم مستعار براي اين ستون در نظر بگيريد. براي ديدن نتايج ديد بر روي علامت (!) كليك نماييد. توجه داشته باشيد كه ارتباط ها در صورتي برقرار ميشود كه كليدهاي خارجي بر روي جداول وجود داشته باشد. گرچه شما مي توانيد با انتخاب فيلد مورد نظر و حركت ماوس در حاليكه كليك سمت چپ را فشار داده ايد مابين دو جدول ارتباط را برقرار كنيد.
نظر یادتون نره؟

شنبه 12/8/1386 - 18:13
آموزش و تحقيقات

 آموزش SQL Server (قسمت سوم)

در اين قسمت در ادامه مطالب قبلي مبحث SP خواهيم پرداخت و آن را كامل خواهيم كرد. در قسمت بعدي مطلب با View ها آشنا خواهيم شد. ايجاد Stored Procedure با استفاده از ويزارد ها: براي ايجاد SP هاي استاندارد جهت عمليات درج , حذف و ويرايش شما مي توانيد از ويزاردهاي خود SQL استفاده نماييد. با اين ابزار شما قادريد طي چند دقيقه تعداد زيادي SP جهت عملياتهاي گفته شده بر روي جداول خود بسازيد. براي اين منظور در Enterprise Manager بر روي كليد ويزارد كليك نماييد مانند شكل زير : بعد در پنجره Select Wizard بر رويDatabase كليك و گزينه Create Stored Procedure Wizard را انتخاب نماييد . مانند شكل زير : در پنجره بعدي به شما خوش آمد گويي مينماييد . برروي كليد Next كليك نماييد.در پنجره بعدي نام Database ي را كه قرار است بر روي جداول آن كار شود انتخاب نماييد و بروي Next كليك نماييد. در پنجره بعدي جداول و عمليات مورد نظري كه مي خواهيد انجام دهيد انتخاب كنيد. در پنجره بعدي نام SP هايي كه سيستم ساخته شما خواهيد ديد. براي ويرايش نام و يا كد هركدام از آنها ميتوانيد آن Sp را انتخاب و كليد Edit را فشار دهيد. در اينصورت شما پنجره اي به شكل زير خواهيد داشت : حال شما در قسمت Name مي توانيد نام Sp را عوض نماييد. در قسمت Include in Set Clause شما فيلدهايي از جدول مربوطه كه مي خواهيد مقادير آن به شكل پارامتر براي Sp ارسال شود انتخاب نماييد. اگر Sp شما Update و يا Delete باشد در قسمت Include in Where Clause شما مي توانيد فيلدهايي كه قرار است در شرط (دستور Where) قرار مي گيرند انتخاب نماييد. تذكر1 : اگر فيلدي از نوع Identity داريد در حالت Insertحتما از قسمت Include in Set Clause خارج كنيد. در غير اينصورت در زمان اجرا با خطا مواجه خواهيد شد. تذكر2 : SQL فيلد كليدي جدول را در دستور Update در دستور Where خواهد آورد . همچنين شما اين فيلد را از Include in Set Clause خارج كنيد. در نهايت شما با فشار كليد Finish همزمان اين Sp را خواهيد ساخت. تا اين قسمت شما با ساخت Sp آشنا شديد. حال براي ويرايش آن نيز كافي است بر روي Sp كليد نموده و در پنجره باز شده كد آن را ويرايش نماييد.

نظر یادتون نره؟

شنبه 12/8/1386 - 18:12
آموزش و تحقيقات

آموزش SQL Server (قسمت دوم)

آموزش Enterprise Manager ميتوان گفت قلب Sql Server است. در Enterprise Manager شما ميتوانيد يك اتصال به سرور Sql برقرار كنيد . table بسازيد. User تعريف كنيد و..... علامت فلش سبز نمايانگر فعال بودن سرور است. سرور ميتواند local باشد مانند بالا و يا يك Sqlserver باشد برروي يك سرور . براي ايجاد يك سرور جديد يا به عبارت ديگر وصل شدن client (ويندوز 98) به يك سرور ديگر بر روي يكي Microsoft Sql Server يا SQL Server Group و يا برروي سرور موجود كليك سمت راست كرده و گزينه New Sql Server Registratin را انتخاب كنيد.

سپس كليد next را انتخاب كنيد. سپس در منوي بعدي در available Server نام سرور خود را تايپ كنيد . (نام سرور SQL خود را كه برروي ويندوز 2000 خود نصب كرده ايد) و بعد كليد add را فشار دهيد.و گزينه next را انتخاب كنيد. در پتجره بعد از شما سوال ميكند كه آيا از username ويندوز استفاده كند و يا اينكه از يك username مخصوص خود Sql Server استفاده كنيد.
گزينه دوم را انتخاب كرده و سپس Login Name و Password را وارد كنيد. (در حالت پيش فرض sa بعنوان login name و فضاي خالي بجاي Password وارد كنيد.) پس از چند بار فشار كليد next شروع به وصل شدن به Server ميكند. در صورت موفقيت آميز بودن با پيامي اين كار را اطلاع ميدهد.
از ديگر گزينه ها شما بيشترين استفاده را از Databases خواهيد كرد.

به عبارت ديگر هر كار و پروژه ما بعنوان يك Database در سرور sql قرار ميگرد. همه جداول و دستورات مربوط به آنها در اين محل نگهداري مي شود. با كليك سمت راست برروي Databases و انتخاب New Database... ميتوانيد يك Database جديد براي خودتان بسازيد. پس از انتخاب نام آن را تاييد كنيد.

هر Database شامل موارد زير است :

1- Diagram : ارتباط جداول را نشان ميدهد.
2- Tables : جداول پروژه را نشان ميدهد.
3- Views : ديدهاي پروژه را نشان ميدهد.
4- Stored Procedure : كدهاي sql مربوط به عملياتهاي روي جداول را نگهداري ميكند.
5- Users : كاربران تعريف شده بر روي اين database را نشان ميدهد.
6- Roles: قوانين دسترسي به جداول و پروسيجرها را نشان ميدهد.
7- Rules : قوانين مربوط به داده ها را در جداول نشان ميدهد.

گزينه هاي 7 به بعد كاربرد آنچناني براي كارهاي ابتدايي ندارند ايجاد يك جدول جديد :
براي ايجاد يك جدول جديد بروي tables كليك سمت راست كرده و گزينه New Table را انتخاب كنيد.
سپس در كادر بعدي نام جدول را انتخاب كنيد. حال فيلدها و نوع آنها را مشخص كنيد . بعد از مشخص كردن نوع و احتمالاً طول فيلد , بايد مشخص كنيد كه آيا فيلد هميشه مي بايست مقدار داشته باشد و يا مي تواند null باشد. Allow Nulls اگر تيك داشته باشد يعني اينكه اين فيلد مي تواند هيچ مقداري به خود اختصاص ندهد. تذكر : مقدار null را با فضاي خالي اشتباه نگيريد. در قسمت Default Value مقدار اوليه براي فيلد وارد كنيد. تا در صورتيكه هيچ مقداري درج نشد آن مقدار درج شود. (در دستور insert ) اگر Identity را تيك بزنيد اين فيلد بشكل خود افزا خواهد شد كه اولا بايد نوع فيلد عددي و ثانيا مقدار گامها در Identity increment مشخص شود.
مقدار اوليه آن را هم مي توانيد در Identity Seed قرار دهيد. بدين شكل با اين مقدار شروع و با گامهاي مشخص شده حركت خواهد كرد. تذكر : هيچ مقداري در اين فيلد نمي توانيد درج كنيد , چراكه خود سيستم اين مقدار را توليد مي كند . براي مشخص كردن فيلد كليد (يا فيلدهاي كليدي) فيلد(ها) را انتخاب و بر روي علامت كليد بر روي Toolbar كليك كنيد . تذكر : فيلد كليدي نمي تواند Allow Nulls باشد. تذكر : براي تعريف index كليك سمت راست كرده و index/keys را انتخاب كنيد . ( در مورد index بطور مفصل صحبت خواهد شد ) ايجاد Stored Procedure : مانند هر زبان ديگر رويه ها در sqlServer نيز موجود مي باشند. و بكار ميروند. سه رويه insert , Updaet و Delete را مي توانيد براحتي با ويزاردهاي خود SqlServer بسازيد. از اينجا به بعد از واژه SP بجاي رويه استفاده خواهيم كرد. ابتدا با ساختار كلي SP آشنا شده و سپس به ويزارد موجود خواهيم پرداخت.

براي ايجاد يك SP جديد ابتدا برروي گزينه Stored Procedure كليك سمت راست كرده و گزينه new Stored Procedure... را انتخاب كنيد. در پنچره بعدي شما مي توانيد متن SP را وارد كنيد. 1- نام sp : ابتدا بجاي [PROCEDURE NAME] يك نام براي SP خود در نظر بگيريد. من خود از ساختار زير بدين منظور استفاده ميكنيم : عمليات_نام جدول عنوان مثال اگر نام جدول Sale و عمليات مورد نظر يك عمليات insert باشد نام SP را Sale_INSERT ميگذاريم. بهتر است نام عمليات با حروف بزرگ تايپ شود .
البته بعضي از دوستان از سه حرف عمليات استفاده مي كنند. براي مثال بالا خواهيم داشت :Sale_INS . 2- تعريف پارامترها : براي تعريف پارامترهاي ورودي SP قبل از كلمه كليدي As آنها را داخل پرانتز مشخص كنيد. بدين شكل كه ابتدا علامت @ سپس نام پارامتر بعد فاصله و نوع پارامتر. تذكر : تمامي متغييرها در SP از ساختار نام متغيير@ پيروي ميكنند. بعنوان مثال فرض كنيد يك SP داراي دو پارامتر با نامهاي Id از نوع int و Name از نوع Varchar(20) باشد , داريم :( @id int,@name varchar(20)) حال بعد از As دستورات مورد نظر را تايپ ميكنيم : مثال 1 : SP بنويسيد كه چهار حرف اول فيلد LastName و فيلد FirstName را از جدول Employees انتخاب كند به شرطي كه فيلد LastName با حرف A شروع شود ؟ ابتدا برروي Stored procedure كليك سمت راست كرده و گزينه New stored procedure را انتخاب كرده و خطوط زير را تايپ كنيد. بعضي از دستورات پايين در كادر باز شده موجود هستند كه نيازي به تايپ مجدد آنها نيست . create Stored Procedure Employees_BROWSE As Select substring(Lastname,1,4) as LastNmae,FirstName From Employees Where LastName Like ‘%A’ حال بر روي دكمه ok كليك نماييد. حال SP با نام Employees_BROWSE در ليست SP اضافه شده است . مثال 2 : تمام فيلدهاي Employees را انتخاب كنيد كه فيلد BirthDate در يك بازه تاريخي كه به شكل پارامتر وارد ميشود قرار گيرد ؟ create Stored Procedure Employees_BROWSE2 (@StartDate char(10) , @EndDate char(10)) As Select * From Employees Where BirthDate between @StartDate and @EndDate حال براي اجراي SP ها در Query Analyzer كافي است بنويسيم : نام Exec SP بعنوان مثال :Exec Employees_browse اگر پارامتر داشت مقدار پارامترها را هم مي آوريم : Exec Employees_Browse2 ‘01/01/1940’ , ‘15/06/1955’ 3- تعريف متغيرها : براي تعريف متغيرها مي بايست از كلمه كليدي Declare استفاده كنيم. بعنوان مثال : Declare @myname varchar(50) متغيير @myname از نوع كاركتري پويا تعريف ميكند. 4- برگرداندن كد خطا : بدين منظور از دستور return @@Error گرچه هرمقداري را كه بخواهيم مي توانيم با دستور return برگردانيم. 5- تعريف پارامترها كه مقداري را برمي گردانند : براي اين منظور هنگامي كه پارامتر را در ابتداي پروسيجر تعريف ميكنيم بعد از نوع آن از كلمه كليدي output مي كنيم بعنوان مثال : create Stored Procedure Employees_BROWSE2 (@StartDate char(10) , @EndDate char(10) , @pp varchar(10) output) As 6- مقدار دهي به متغييرها : به دو روش مي توانيد اين كار را بكنيد يكي با دستور Set و ديگري با دستور Select . 7- دستورات شرطي :مانند ديگر زبانها شما مي توانيد در Sql دستورات شرطي را بكار ببريد. ساختار آن به شكل زير است : If شرط then دستور If شرط then Begin دستور1 دستور2 ... end مثال : If @Sdate > @Edate set @newDate = @Sdate 8- دستور Set NOCOUNT on : اين دستور از نوشت تعداد سطرهاي برگردانده شده توسط دستورات جلوگيري ميكند. كاربرد مهم آن زماني است كه شما چند كار را پشت سرهم در SP انجام ميدهيد. مثلا يك جدوي موقت ميسازيد و سپس از آن يك تعدادي از فيلدها را با دستور Select انتخاب مي كنيد.
اگر اين دستور را در ابتداي SP استفاده نكتيد , هنگامي كه ميخواهيد از آن SP در يك زبان برنامه نويسي استفاده كنيد با خطاي SP هيچ dataset ي برنمي گرداند مواجه خواهيد شد. تذكر1 : شما مي توانيد يك SP را در يك SP ديگر فراخواني كنيد. براي اين منظور همانطور كه قبلا گفته شد از دستور exec استفاده نماييد. تذكر 2 : با دستور exec شما مي توانيد يك دستور sql را نيز اجرا كنيد. اين كار زماني بكار مي آيد كه دستور مورد نظر پويا و متغير باشد. مثال : Exec (“ select * From Employees Where “+@Shart) اين شرط ميتواند بر اساس فيلدهاي بانك توليد گردد. مثال : يك SP بنويسيد كه اختلاف تعداد سفارشاتي كه فيلد ShipCountry آنها France يا German باشد. را برگرداند ؟
create Stored Procedure Order_France_German ( @Outp int output) as declare @Count_France int , @Count_German int select @Count_France = Count(*) from orders where ShipCountry = 'France' select @Count_German = Count(*) from orders where ShipCountry = 'German' if @Count_France is null set @Count_France = 0 if @Count_German is null set @Count_German = 0 set @outp = @Count_France - @Count_German
نظر یادتون نره؟

شنبه 12/8/1386 - 18:11
مورد توجه ترین های هفته اخیر
فعالترین ها در ماه گذشته
(0)فعالان 24 ساعت گذشته