مشکل در دسترسی به Interbase
سلام بر دوستان
1-در برنامه ای از چند بانک از نوع Interbase استفاده میکنم ولی وقتی بیش از دو بانک open میشود با این پیغام برخورد میکنم
Maximum user count exceeded. Contact your database administrator
از سیستم تک کاربره استفاده میکنم و سرور نیست و البته نام و شماره رمز همه بانکها مشابه هم هستند. برای حل مشکل چه باید کرد؟
2-در برنامه ای از بانک Interbase استفاده کردم تا زمانی که این بانک بر روی هارد است مشکلی در فراخوانی اطلاعات ندارم .ولی وقتی بانک را روی سی دی منتقل کردم و قرار شد که اطلاعات از روی سی دی خوانده شود با این پیغام مواجه شدم
no permission for read-write access to database I:\MyTable.gdb
و در IBConsole هم نتوانستم مشخصات permissions که در همی فیلدها ' Y ' است را تغییر بدهم. مشکل را چگونه بر طرف کنم؟
با تشکر فراوان
امنیت دیتابیس ها و داده ها در اینتربیس
سلام،
پس از نصب اینتربیس و در شروع کار رمز SYSDBA را به رمز موردنظر خود تغییر دهید. نکته اینجاست که تعریف کاربران و رمزها هرگز در دیتابیس شما ذخیره نمىشوند، بلکه همگى در دیتابیس isc4.gdb نگهدارى مىشوند که یکى از فایلهاى هر سرور اینتربیس است. توجه داشته باشید هر کسى رمز SYSDBA را بداند مىتواند به دیتابیس دسترسى پیدا کند اما با تغییر آن هیچ سطح امنیتى بوجود نمىآید؛ با کپى کردن فایل GDB مىتوان آن را روى یک سرور اینتربیس دیگر به راحتی باز کرد. همچنین با داشتن دسترسى به فولدر حاوى فایل isc4.gdb مىتوان رمز SYSDBA را تغییر داد.
پس امنیت؟
اینتربیس به صورت یک سرور دیتابیس طراحى شده است که براى محافظت فایلهایش به امنیت سیستم عامل متکى است. داده درون دیتابیسهاى اینتربیس به هیچ صورت رمزگذارى نمی شود و فایل GDB باید با ویژگیهاى امنیتى سیستم عامل از دسترسى غیرمجاز محافظت شود. در یک کاربرد روى شبکه هیچ کس بجز DBA و اکانتى که سرور اینتربیس زیر آن اجرا مىشود هیچگونه حق دسترسى به هیچ یک از فولدرهاى حاوى فایلهاى GDB نخواهد داشت و نیازى به به اشتراک گذشتن هیچ فولدرى نیز نخواهد بود. به این ترتیب راهى براى دسترسى غیر مجاز به دیتابیسها و دادههاى درون آنها وجود نخواهد داشت.
بدیهى است در یک کاربرد دسکتاپ که ممکن است در شرایط یا روى سیستم عامل هایى بدون پشتیبانى سطح امنیت مورد نظر اجرا شود چنین امنیتى وجود نخواهد داشت. زمانى که محافظت از داده هاى درون یک دیتابیس در یک کاربرد دسکتاپ اهمیت پیدا مىکند تنها روش قابل اطمینان انکریپت کردن دادهها است.
البته تکنیک هایى را مىتوان بکار برد تا کاربران معمولى که ممکن است SYSDBA و masterkey را بدانند به آسانى موفق به باز کردن دیتابیس نشوند، اما قطعا این روشها براى افراد با تجربه تر به راحتى قابل نفوذ هستند.
- کدام روش نصب را بکار بردید؟
تغییر رمز SYSDBA در InsterBase
سلام،
براى تغییر رمز SYSDBA نیازى نیست از IBConsole استفاده کنید. مىتوانید از طریق IBSecurityService در برنامه دلفى خود و یا از طریق برنامه خط فرمان gsec این کار را روى سرور تازه نصب شده انجام دهید و رمز آن را مطابق آنچه در نظر گرفتهاید قرار دهید.
در کنار تغییر رمز SYSDBA، در سطح بعدی جلوگیری از بازشدن غیر مجاز دیتابیس با یک حقه مىتوانید جلوى وارد شدن SYSDBA را به دیتابیس بگیرید و از کاربر دیگری که در ابتدا تعریف مىکنید استفاده کنید. البته با هر کاربرى غیر از SYSDBA مىتوان دیتابیس را بازکرد، اما فقط SYSDBA مىتواند کاربر تعریف کند. راه نفوذ، کپى دیتابیس و استفاده از سرور دیگرى که رمز SYSDBA اش را دارند و تعریف یک کاربر جدید و بکارگیرى آن.
استفاده از دیگر دیتابیسهاى متداول موضوع امنیت دادهها را بطور کامل حل نخواهد کرد. بهتر است دیتاى مهم خود را encrypt کنید.
موفق باشید