• مشکی
  • سفید
  • سبز
  • آبی
  • قرمز
  • نارنجی
  • بنفش
  • طلایی
ارتباطات و فن آوری اطلاعات (بازدید: 4861)
پنج شنبه 5/2/1387 - 16:3 -0 تشکر 37970
از SQL بیشتر بدانیم

زبان SQL تنها زبان استاندارد و جامع پیاده‌سازی، مدیریت، نگهداری و كار با بانكهای اطلاعاتی می‌باشد كه تقریباً توسط تمام بانكهای اطلاعاتی كوچك و بزرگ مانند Access، SQL Server، Oracle و DB2 پشتیبانی می‌شود. طراحان و افرادی كه بنوعی با بانكهای اطلاعاتی سروكار دارند و همچنین برنامه نویسانی كه از این بانكها استفاده می‌كنند هركدام باید تا اندازه‌‌ای با این زبان آشنایی داشته باشند. این مقاله كه در سه قسمت تهیه شده است می‌كوشد تا مفاهیم زبان SQL را در قالب یك مثال كاربردی بیان كند. هرچند كه مفاهیم بكار رفته در این مقاله در تمامی بانكهای اطلاعاتی قابل پیاده‌سازی می‌باشند ولی مثالهای ارائه شده در 2000 SQL Server مورد تست قرار گرفته‌اند.

 

بانك اطلاعاتی كه در این مقاله بعنوان مثال مورد استفاده قرار گرفته است بانك اطلاعاتی یك آموزشگاه می‌باشد كه شامل دو جدول بنامهای teachers و students می‌باشد. جدول اول اطلاعات اساتید و جدول دوم اطلاعات دانشجویان را در خود نگه می‌دارد. جدول اول دارای چهار فیلد زیر می‌باشد: name یا نام از نوع text، family یا فامیل از نوع text، age یا سن از نوع عدد، salary یا حقوق از نوع عدد.

 

جدول دانشجویان نیز شامل چهار فیلد می‌باشد، سه فیلد اول آن مشابه سه فیلد اول جدول اساتید می‌باشد و فیلد چهارم آن عبارتست از GPA یا معدل كه یك فیلد عددی است.

 زبان SQL دارای دستورات متنوع و نسبتاً زیادی می‌باشد. به این دستورات Clause نیز گفته می‌شود. در این مقاله و قسمتهای بعدی آن تعدادی از مهمترین Clauseهای زبان SQL مورد بررسی قرار می‌گیرند.

گرافیک رایانه ای ، مانیتوری و چاپ

چهارشنبه 25/2/1387 - 19:4 - 0 تشکر 39978

جدولهایتان را بشناسید

معمولاً، بهینه ساز پرس و جو تعیین می‌كند كه سرویس دهنده SQL چه نوع پیوندی را استفاده خواهد كرد. شما می‌توانید پرس و جوی پیوند خود را نوشته و انتخاب استراتژی را به عهده SQL بگذارید. بهرحال، دانستن نحوه اجرای پیوندها در سرویس دهنده SQL می‌تواند انتخاب شما در مورد شاخصهای مفیدتر كمك كند. بهینه ساز معمولاً در صورتی كه یكی از ورودیهای پیوند در مقایسه با ورودی دیگری كوچكتر و ورودی بزرگتر دارای یك شاخص كلاستری روی ستون پیوند باشد، از پیوند حلقه تودرتو استفاده می‌كند. اگر هر دو ورودی در ستون پیوند مرتب شده باشند و بخصوص یكی از ورودیها دارای شاخص كلاستری unique باشد نوع پیوند به احتمال زیاد ادغامی خواهد بود.

هر دو پیوند ادغامی و حلقه تودرتو نیاز به شاخصهای مناسب در جدولها دارند. بهرحال، اگر برنامه كاربردی شما باعث شود كه كاربرها پرس و جوهای ویژه بسازند، ممكن است در ابتدا ندانید كه بهترین ستون برای شاخصها كدام است. سومین نوع پیوند، پیوند hash است كه باعث می‌شود سرویس دهنده SQL به یك عملكرد پیوند بسیار خوب دست بیابد حتی زمانی كه جداول شما از شاخصهای مفیدی برخوردار نباشند.

گرافیک رایانه ای ، مانیتوری و چاپ

چهارشنبه 25/2/1387 - 19:6 - 0 تشکر 39979

آسیب‌پذیری Login ID در SQL Server 7.0

یك نقص امنیتی در الگوریتم پنهان سازی مورد استفاده در پنهان كردن اسم رمز و Login ID در Microsoft Enterprise Manager for SQL Server 7.0 وجود دارد. این مشكل زمانی رخ می‌دهد كه بخواهید SQL Server جدیدی را در Enterprise Manager نصب ‌كنید یا SQL server نصب شده‌ای را ویرایش ‌كنید (منظور زمانی است كه برخی مشخصه‌های آن تغییر می‌دهید). اگر SQL Server ، Login name به جای یك Domain ، User name ویندوز بكار رود و checkbox عنوان "Alway prompt for login name and password" ست نشده باشد،‌ LoginID و اسم رمز به صورتی ضعیف پنهان شده و در رجیستری ذخیره می‌شود.

هنگامی كه یك (database Administrator)DBA به داخل یك workstation با یك log ، Profile می‌شود LoginID و اسم رمز، هر دو در كلید رجیستری ذخیره می‌شوند، این اطلاعات به عنوان یك فایل با نام NTUSER.DAT (در ویندوز NT) یا USER.DAT (در ویندوز 95 یا ویندوز 98) زمانی كه كاربر logoff می‌كند ذخیره می‌شود. فرد متخاصم می‌تواند این فایل را در یك ویرایشگر متن باز كرده و DBA ، loginID و اسم رمز پنهان شده را ببینید. فرد متخاصم می‌تواند اسم رمز و login ID رمز شده پنهان شده را برگردانده و loginID و اسم رمز را بدست آورد. وجود این مشكل امنیتی به متخاصمین محلی و راه دور این اجازه را می‌دهد كه اسم رمز Administrator سیستم را بدست آورده و كنترل كاملی روی پایگاه داده روی سرور داشته باشند. این مشكل امنیتی در Microsoft Enterprise Manager for SQL server 7.0 وجود دارد. سیستم پنهان سازی كه برای پنهان كردن اسم رمز و SQL server ، LoginID نصب شده بكار می‌رود، قابل كشف است. روش پنهان سازی از جانشینی الفبایی استفاده می‌كند و هركدام از كاراكترهای Unicode در اسم رمز با دو بایت متناسب با موقعیتشان در رشته، XOR شده‌اند. اگر checkbox با عنوان “Always prompt for login name and password” هنگامی كه SQL server نصب می‌شود ست نشده باشد، LoginID و اسم رمز به صورت ضعیفی در رجیستری در قسمت :

--------------------------------------

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSSQLServer\SQLEW\Registered Server X]

--------------------------------------

ذخیره می‌شود. اطلاعات ذخیره شده در HKEY_CURRENT_USER زمانی در دسترس است كه كاربر در حال حاضر log شده باشد در این حال زمانی كه كاربر ویندوز NT به سیستم log می‌شود یك كپی متفاوت از HKEY_URRENT_USER لود می‌شود و هنگامی كه كاربر Logoff می‌كند محتویات HKEY_URRENT_USER در فایل NTUSER.DAT یا USER.DAT ذخیره می‌شود و این فایل‌ها را می‌توان در Notepad ویندوز باز كرد و loginID و اسم رمز را براحتی در آن دید اگر DBA از یك workstation دیگری، به سیستم log كند، فایل NTUSER.DAT روی همان workstation كه كاربر از طریق آن به سیستم log شده است ذخیره می‌شود.

برای حل این مشكل امنیتی و استفاده مطمئن از SQL server، مایكروسافت پیشنهاد كرده كه از Windows Integrated security استفاده شود زیرا در مد Integrated security (امنیت یكپارچه)، اسم رمزها هیچگاه ذخیره نمی‌شوند.

اگر SQL server ، LoginID برای Logging به یك سرور در Enterprise Manager تعیین شده باشد، مایكرسافت پیشنهاد می‌كند كه از انتخاب “Always Prompt for Login name and password" برای جلوگیری ذخیره اسم رمزها در رجیستری استفاده كنید.

گرافیک رایانه ای ، مانیتوری و چاپ

برو به انجمن
انجمن فعال در هفته گذشته
مدیر فعال در هفته گذشته
آخرین مطالب
  • آلبوم تصاویر بازدید از کلیسای جلفای...
    آلبوم تصاویر بازدید اعضای انجمن نصف جهان از کلیسای جلفای اصفهان.
  • بازدید از زیباترین کلیسای جلفای اصفهان
    جمعی از کاربران انجمن نصف جهان، در روز 27 مردادماه با همکاری دفتر تبیان اصفهان، بازدیدی را از کلیسای وانک، به عمل آورده‌اند. این کلیسا، یکی از کلیساهای تاریخی اصفهان به شمار می‌رود.
  • اعضای انجمن در خانه شهید بهشتی
    خانه پدری آیت الله دکتر بهشتی در اصفهان، امروزه به نام موزه و خانه فرهنگ شهید نام‌گذاری شده است. اعضای انجمن نصف جهان، در بازدید دیگر خود، قدم به خانه شهید بهشتی گذاشته‌اند.
  • اطلاعیه برندگان جشنواره انجمن‌ها
    پس از دو ماه رقابت فشرده بین کاربران فعال انجمن‌ها، جشنواره تابستان 92 با برگزاری 5 مسابقه متنوع در تاریخ 15 مهرماه به پایان رسید و هم‌اینک، زمان اعلام برندگان نهایی این مسابقات فرارسیده است.
  • نصف جهانی‌ها در مقبره علامه مجلسی
    اعضای انجمن نصف جهان، در یك گردهمایی دیگر، از آرامگاه علامه مجلسی و میدان احیا شده‌ی امام علی (ع) اصفهان، بازدیدی را به عمل آوردند.