PDA

View Full Version : سوال: جلوگیری از دسترسی و تغییرات در فولدرهای به اشتراک گذاشته شده



hadisalahi2
دوشنبه 04 شهریور 1392, 09:49 صبح
با سلام به همه دوستان عزیز

من یک برنامه بانک اطلاعاتی نوشتم که کارش ذخیره و آرشیو کردن فایلها و تصاویر هستش
این برنامه یک سری فایل رو از کاربر میگیره و بعد مسیر اونها رو در بانک اطلاعاتی و خود فایل ها رو بر روی سرور مرکزی اداره ذخیره میکنه.

برای اینکه فایلها رو روی سرور ذخیره کنم ، چند تا پوشه ایجاد کردم و اونها رو Share کردم و فایلها رو به صورت مستقیم در این پوشه ها ذخیره میکنم.

اما مشکل اینجاست ، که این پوشه های Share شده ، توسط سایر کاربران از بقیه کامپیوترها قابل دیدن هستند و بقیه هم میتونند اطلاعات رو پاک کنند و یا تغییرات بدند.


من دو تا راه حل به ذهنم اومد ، اما متاسفانه هیچ کدوم قابل اجرا نیستند:

1- ذخیره فایلها در بانک : به دلیل حجم بالای اطلاعات ، عملا این گزینه از رده خارجه و به هیچ عنوان نمی تونم از این روش استفاده کنم.

2- کپی فایلها از سرور به کامپیوتر مبدا : این فکر هم به ذهنم رسید تا اول فایلها از سرور به کامپیوتر درخواست کننده ، انتقال پیدا کنند ، بعد بشه از اونها استفاده کرد .
اما متاسفانه این روش هم غیر قابل اجراست ، چون انتقال این همه فایل ، کار خیلی وقت گیری هستش و عملا غیر ممکنه.

حالا از دوستان تقاضا دارم ، در این مورد من رو راهنمایی کنند .

اداره کارفرما ، به همین دلیل ، از برنامه ایراد گرفته و اون رو از ما تحویل نمی گیره.

از دوستان تقاضا دارم ، هر نظر یا ایده دارند ، حتی خیلی ساده ، ارائه کنند تا بتونم این مشکل رو حل کنم.

hadisalahi2
سه شنبه 05 شهریور 1392, 18:50 عصر
اولا: این سوال چه ربطی به دلفی داره ؟ این سوال باید در بخش شبکه پرسیده بشه. و یا لا اقل در بخش شبکه دلفی . نه بانک اطلاعاتی.

به خاطر اینکه زبانی که نوشتم دلفی هستش و اطلاعات فایل ها در بانک ذخیره می شوند
در ضمن قبلا در اون تالار هم پرسیدم ، کسی خیلی در جریان نبود
گفتم شاید این تالار فرجی بشه


دوما : سعی کنید وقتی سوالی در این زمینه دارید ، سوال رو به طور واضح توضیح بدید .

سوال من کاملا واضح هستش و کامل هم توضیح دادم ، حالا نمیدونم شما کجاش رو متوجه نشدید


مثلا : این شبکه وورک گروپ هست یا دامین . اگر دامین هست آیا اکتیو دایرکتوری دارید ؟

شبکه ساده ورک گروپ


ویندوز سرورتون چه نسخه ای هست ؟

ویندوز سرور نیست و ویندوز XP معمولی هستش (یعنی سرور اون اداره این هستش ، چون شبکه اونها هم ورک گروپ هستش)


سوما: کل سناریو پیاده سازی انتقال فایلتون به نظر من اشتباهه.
بر اساس چه قانونی فولدر ها رو به اشتراک میزارید؟ پس امنیت چی میشه ؟

من خودم میدونم اشتباهه و امنیت وجود نداره ، اگه نه سوال نمیکردم برای روش بهتر و با امنیت بیشتر


وقتی دارید یک مجموعه رو به صورت مکانیزه طراحی میکنید ، پس سعی نکنید قسمتهایی رو که نمیتونید پیاده سازی کنید ، به صورت قبلی و دستی پیاده سازی کنید.

این یکی رو به روی چشم


با دقت توضیحات من رو بخونید :( این توضیحات فارغ از امکاناتی هست که خود بانک اطلاعاتی هایی نظیر sql server برای جابجایی فایل در اختیارتون میزاره)
اگر نوع شبکه ای که قراره این برنامه در آن کار کنه ، به صورت دامین هست و اصرار به اشتراک گزاری شاخه ها دارید ( که بنده اصلا این روش رو توصیه نمیکنم)، کافیه اکتیو دایرکتوری راه بندازید . فولدر ها رو پرمیشن بندی کنید و نوع انتقالتون رو مثل وضعیت حاضر داشته باشید.

ربطی به اکتیو دایرکتوری نداره ، همین طوری هم میشه پرمیژن تعریف کرد و برای فولدر اشتراک شده ، یوزر تعریف کرد
اما بعد از تعریف دسترسی ، دیگه قادر به ارتباط با فولدر نیستم ، ( یا شاید هم من بلد نیستم ) (سوال هم کردم ، کسی بلد نبود)


1 - راه اندازی Ftp Server : بر روی سرور میتونید از برنامه های نظیر IIS و یا FileZilla server استفاده کنید و از سمت کلاینتها فایلها رو ارسال و دریافت کنید.
که در این صورت کلیه مجوزها در دست خودتون هست . با مدیریت راحت
2- قسمت ارسال و دریافت رو به طور کامل با indy خودتون پیاده سازی کنید . که در این صورت هم کلیه پرمیشن بندی ها با خودتون هست و حتی میتونید سرعت انتقال اطلاعات رو طوری پیاده سازی کنید که از سرعت کپی کردن ویندوز به ویندوز هم سریعتر بشود.
موفق باشید.

هر دو موردی که فرمودید به نظر خودم هم رسیده ، اما متاسفانه ، عملا غیر ممکن هستش.

شما در نظر بگیرید ، در یک رکورئ اطلاعاتی ، شاید 100 تا فایل رو کاربر انتخاب میکنه و بعد اونها ، در سرور آرشیو میشه
حالا اگه دوباره طرف بخواد این فایل ها رو دسترسی پیدا کنه ، باید همه این فایلها منتقل بشه به کلاینت و حالا باز در صورت یک تغییر ، دوباره در سرور آرشیو بشه.

این موارد در زمانهایی مناسب هستش که حجم فایل ها و تعداد اونها کم باشه

بعدش هم ، نمیدونم شما چقدر با این کارمندان سنتی ادارات کار کردید؟
به محض اینکه برنامه به اندازه 5 ثانبه کند تر عمل کنه
خواجه حافظ شیرازی رو هم خبر دار میکنند :متعجب:
تا چه برسه اینکه بخوان برای چند دقیقه معطل کپی شدن فایل ها بشند.

hadisalahi2
سه شنبه 05 شهریور 1392, 18:52 عصر
نظر خود من همین اشتراک گذاری فولدر هستش ، با تعریف رمز برای فولدر
و این رمز از داخل برنامه استفاده بشه
اما مشکل اینجاست که من نمیدونم چطوری باید به فولدری که یوزر براش تعریف شده ، از دلفی دسترسی داشت :متفکر:

hadisalahi2
چهارشنبه 06 شهریور 1392, 09:38 صبح
دوستانه میگم خدمتتون ، اینو جای دیگه نگید .

مثل اینکه منظور من رو متوجه نشدید
من کاملا با ویندوز سرور آشنایی دارم و هم با اکتیو دایرکتوری و تا الان بارها و بارها ، این ویندوز رو در سروهای مختلف نصب کردم و با همه گروپ پولیسی ها آشنایی دارم.

این کاری که مد نظرم هست ، با همین ویندوز ایکس پی معمولی هم قابل پیاده سازی هستش
و میشه بر روی فولدرهای شیر شده ، دسترسی تعیین نمود و مشخص کرد که کدام یوزرها بهش دسترسی داشته باشند


وسعی کنید خارج از اینکه برنامه پرقدرتی تحویل میدید ، از مهندسی اجتماعی هم استفاده کنید و با صحبت کردن و دادن راهکارهای خوب ، روشنش کنید.
بعدشم بهشون اعلام کنید ، کار در شبکه قوانین خودش رو داره و مجبوریم ازشون پیروی کنیم.

داداش گلم معلومه هنوز با کارمندهای سنتی ادارات در گیر نشدی تا بفهمی منظور من چیه.


اتفاقا این قسمت کاری نداره و قابل حله.

اگه کاری نداره ، لینکی ، مقاله ای ، نمونه پروژه ای معرفی کنید تا کار من راه بیوفته
تنها راهی که این پروژه داره ، اینه که فایلها مستقیم از سرور باز بشند و این کار هم فقط از طریق دلفی صورت بگیره و با دسترسی به فولدر شیر شده که روش یوزر تعریف کردند

نمیدونم تا چقدر منظورم رو رسوندم


مثل این می مونه که من در سال 1360 میومدم و از موبایل برای اونها صحبت میکردم. :گیج:

سوای این بحث ها ، کاری که مد نظر من هستش با همین ویندوز معمولی هم میشه
مشکل فقط در دسترسی به فولدر شیر شده ای هستش که براش یوزر تعریف شده


شما خودت به صورت دستی و نه با برنامه ، تست کن که این سناریویی که میخای انجام بدی شدنی هست یا نه؟

تست کردم چندین بار .

ببین یک بار دیگه شفاف تر بگم :

1- یک فولدر شیر شده دارم که از داخل برنامه فایلها رو توی اون ذخیره میکنه یا از اون فولدر اجرا میشه

2- حالا میام برای این فولدر ، یوزر با دسترسی تعریف میکنم.

3- بعد از تعریف یوزر و دسترسی ، دیگه برنامه من قادر به خوندن یا نوشتن از اون فولدر شیر شده نیست

4- حالا چطور به اون فولدر از داخل برنامه دسترسی پیدا کنم؟

همین

hadisalahi2
چهارشنبه 06 شهریور 1392, 17:12 عصر
1- یک یوزر از بخش Computer Management ایجاد کردم
http://www.8pic.ir/images/96828863838988226182.jpg

2- بعد فولدر رو شیر کردم
http://www.8pic.ir/images/02129128173888553698.jpg

3- بعد یوزری رو که ساخته بودم سرچ کردم و دسترسی فول کنترل رو بهش دادم
http://www.8pic.ir/images/12415482481044500429.jpg

4- حالا از اینجا به بعد ، دیگه نمیتونم به اون فولدر شیر شده دسترسی پیدا کنم

دقیقا مشکل از همین جا شروع میشه
من میخوام حالا از توی برنامه به این فولدر دسترسی پیدا کنم

Mask
پنج شنبه 07 شهریور 1392, 13:03 عصر
چندین ساعت درگیر نوشتن این برنامه بودم.
هر روشی که میرفتم باز مشکل داشت . تا دست آخر روش زیر بهم جواب داد.
تست کنید ببینید همونیه که نیاز دارید؟
پستهای فاقد محتوای فنی رو حذف کنید.

hadisalahi2
پنج شنبه 07 شهریور 1392, 16:31 عصر
شما هم مثل من از روشی که گفتم برای دادن دسترسی از روش زیر استفاده کردید؟

بعد از اینکه کانکت میشه چه پیامی میده؟

اصلا چیزی نمایش میده؟

در ضمن سورس برنامه رو در اختیارم نمی زاری؟

hadisalahi2
پنج شنبه 07 شهریور 1392, 17:24 عصر
اگه همه اطلاعات درست باشه ، بازش میکنه مسیر رو

بله این رو بعدا متوجه شدم
به صورت یک درایو مجازی شبکه ، فولدر شیر شده رو نمایش میده


خوب یه فولدر به اشتراک بزار ، برای یک یوزر ، و برنامه رو تست کن.

فرقی نداره این فولدر شیر شده روی کامپیوتر خودم باشه یا روی یک سیستم دیگه؟

اگه فرقی نداره
کلا هر پوشه ای رو بدی ، چه یوزر داشته باشه با پس و چه نداشته باشه
چه رمز بدی و چه ندی باز میکنه

اگه هم حتما باید یک فولدر در یک کامپیوتر دیگه باشه
اون رو هنوز تست نکردم

hadisalahi2
پنج شنبه 07 شهریور 1392, 19:04 عصر
شرمنده حاجی
اینقدر دنبال گشتم کد گرفتم کار نکرده که خودمم قاطی کردم
باشه تست میکنم خبرش رو میدم
دستت طلا

hadisalahi2
شنبه 09 شهریور 1392, 12:35 عصر
سلام
برنامه تست کردم
پوشه هایی رو که به همین روش رمز دادیم و براش دسترسی تعیین کردیم رو باز میکنه
البته به صورت همین درایو مجازی

hadisalahi2
شنبه 09 شهریور 1392, 17:34 عصر
میشه لطفا روش کار رو قرار بدید تا ما هم استفاده کنیم
ممنون میشم

hadisalahi2
شنبه 09 شهریور 1392, 19:01 عصر
میشه لطفا بعد از دسترسی به هارد خودتون ، سورس رو برام بزارید
کد اینترنت زیاده
ولی متاسفانه اینقدر کدها شلوغ پلوغه که آدم رو خسته میکنه
خیلی ممنون میشم اگه این لطف رو در حق من کنید

hadisalahi2
دوشنبه 11 شهریور 1392, 11:20 صبح
جناب Gold هنوز به هارد خودتون دسترسی پیدا نکردید؟

hadisalahi2
چهارشنبه 13 شهریور 1392, 09:21 صبح
این کد رو خودم داشتم
یک مشکل داره و اون هم اینه که پنجره Map Drive رو باز میکنه ، و مستقیم عمل مپ کردن رو انجام نمیده.

خودم با کمی تلاش ، تونستم این کار رو انجام بدم
سورسش رو کامل که کردم ، میزارم اینجا همه استفاده کنند

parsidev
یک شنبه 07 اردیبهشت 1393, 15:15 عصر
منم مدتی پیش دنبال این موضوع بودم
اما بهترین نتیجه اینه که از خود SQL سرور 2008 به بعد استفاده کنید
در نسخه 2008 به بعد قابلیتی وجود داره جهت ذخیره اطلاعات فایلها در هارد (نه در فایل بانک) با این تفاوت که این فایل ها توسط خود اس کیو ال هندل میشن و شما مثل یه فیلد باینری!! با اونها رفتار می کنید. سرچ بزنید پیدا می کنید

shirpia
پنج شنبه 15 مرداد 1394, 17:37 عصر
سلام
یه سوال داشتم
وقتی با نمونه کار شما به اشتراک در شبکه دسترسی داریم و مادامی که که دیسکانکت نشدیم میشود از طریق ویندوز و بدون نرم افزارخاص وفقط با روش معمول به همان مشترکات دسترسی ‍‍پیدا کرد؟
در صورت امکان سورس را برای بنده بفرستید
heyvola@yahoo.com

Mask
پنج شنبه 15 مرداد 1394, 21:48 عصر
سلام
یه سوال داشتم
وقتی با نمونه کار شما به اشتراک در شبکه دسترسی داریم و مادامی که که دیسکانکت نشدیم میشود از طریق ویندوز و بدون نرم افزارخاص وفقط با روش معمول به همان مشترکات دسترسی ‍‍پیدا کرد؟
در صورت امکان سورس را برای بنده بفرستید
heyvola@yahoo.com
میتونید با من تماس بگیرید تا راهنماییتون کنم.