PDA

View Full Version : ساخت Setup برای برنامه ای که بانک Mysql دارد.



S_VB.max
شنبه 07 بهمن 1385, 17:57 عصر
سلام
من برنامه ام را به بانک mysql در کامپیوتر local ارتباط داده ام حالا می خواهم برای آن Setup درست کنم اگر میشه در این مورد من را راهنمایی کنید که چه فایل یا فایل هایی را باید بردارم. و آیا در کامپیوتر مقصد باید mysql نصب باشد یا نه؟ در ضمن دیتابیس و جدول ها در کجا باید نصب شوند.
با تشکر

reza_rad
یک شنبه 08 بهمن 1385, 08:22 صبح
اگه برنامه تحت وب باشه که اصلا نیازی نیست و فقط باید سرور Mysql داشته باشه.

ولی تحت وب اگه نیست باید حتما جایی که نصبش می کنید Mysql نصب باشه
می تونید با Mysqldump یه Backup کلی از دیتابیس بگیرید و هر جا خواستید این Backup رو برگردونید.
http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

در مورد جاش هم شما لازم نیست نگران باشید خود Mysql جاش رو تنظیم می کنه.

S_VB.max
یک شنبه 08 بهمن 1385, 17:35 عصر
ممنون دوست عزیز
1. آیا هیچ امکانی وجود ندارد که تنها فایل های Mysql که برنامه VB به آن احتیاج دارد را در Setup اضافه کرد؟
2. با توجه به اینکه شما فرمودید Mysql حتما باید نصب باشد پس در این صورت می خوام یک Setup واحد درست کنم چیزی شبیه نصب Wamp، Xamp، Php dev که با یک نصب چندین نرم افزار نصب می شود.
3. مشکل دیگری که وجود دارد این است که در محل نصب Mysql اگر وارد پوشه Data شوید لیستی از بانک های اطلاعاتی ایجاد شده در فولدرهای مجزا قرار گرفته است با این وجود کاربری می تواند وارد این پوشه شده و بانک را دستکاری نماید و این امنیت بانک نرم افزار را زیر سئوال می برد . چگونه می توان این مشکل را رفع نمود؟

amirhosein
چهارشنبه 18 بهمن 1385, 08:56 صبح
سلام
من برنامه ام را به بانک mysql در کامپیوتر local ارتباط داده ام ...
میشه لطف کنید و بفرمایید چه جوری وی بی رو با mysql به هم ربط دادین.اگه توضیحتون با یه مثال کوچیک باشه که دیگه محشر میشه.با تشکر:خجالت:

reza_rad
چهارشنبه 18 بهمن 1385, 09:06 صبح
آیا هیچ امکانی وجود ندارد که تنها فایل های Mysql که برنامه VB به آن احتیاج دارد را در Setup اضافه کرد؟


خیر. نمیشه.
چون Mysql و یا هر سیستم پایگاه داده ای نیاز به Engine خودش داره تا اجرا بشه و امکان برقراری ارتباط با دیتابیس هاش رو به کاربران بده. و Engine هم هیچوقت با کپی چند فایل ایجاد نمیشه. باید نصب بشه.



با توجه به اینکه شما فرمودید Mysql حتما باید نصب باشد پس در این صورت می خوام یک Setup واحد درست کنم چیزی شبیه نصب Wamp، Xamp، Php dev که با یک نصب چندین نرم افزار نصب می شود.


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



مشکل دیگری که وجود دارد این است که در محل نصب Mysql اگر وارد پوشه Data شوید لیستی از بانک های اطلاعاتی ایجاد شده در فولدرهای مجزا قرار گرفته است با این وجود کاربری می تواند وارد این پوشه شده و بانک را دستکاری نماید و این امنیت بانک نرم افزار را زیر سئوال می برد . چگونه می توان این مشکل را رفع نمود؟


ببینید این مشکل در مورد تمام دیتابیس هایی که لوکال استفاده میشن وجود داره حتی SqlServer هم اگه کاربر بره و فایل های اصلی رو از روی سیستم خودش پاک کنه واسه دیتابیس اش مشکل پیش میاد. اینجا هم همینطوره.

و معمولا به همین دلایل هست که به این سیستم ها میگن دیتابیس سرور چون وقتی امنیتش مشخص میشه که دیتابیس روی سرور باشه نه لوکال. به هر حال همیشه کاربری که روی سیستم خودش ادمین هست حتی می تونه Mysql ای که شما نصب کردید رو Remove کنه و یا هر کار دیگه.

ولی چیزی که مسلمه برای تغییر دادن Content اون فایل ها باید با DBMS ارتباط برقرار کنه و نمی تونه مثلا فایل ها رو با Notepad باز کنه و دیتا ها رو تغییر بده.

oVERfLOW
چهارشنبه 18 بهمن 1385, 11:46 صبح
برای دیتابیس روی سیستم من پیشنهاد می‌کنم از FireBird استفاده کنید تا تفاوت رو احساس کنید
حجم کم و کارایی راحت...

S_VB.max
چهارشنبه 18 بهمن 1385, 13:38 عصر
آقای reza_rad از توجه شما ممنونم
آیا امکان دارد محتویات دیتابیس و یا فایلها را کد کرد؟ و یا اصلا چه جوری می توان روی دیتابیس ، رمز و پسورد گذاشت ؟ به طوری که اگر کاربر فایل را کپی کرد در سیستم دیگر نتواند آنرا باز کند و دیگر اینکه آیا این پسورد قابل اعتماد است ؟

در پاسخ به جناب amirhosein باید بگویم که حتما در همین جا ، طریقه ارتباط Vb و Mysql را می گم.

reza_rad
چهارشنبه 18 بهمن 1385, 14:47 عصر
آیا امکان دارد محتویات دیتابیس و یا فایلها را کد کرد؟ و یا اصلا چه جوری می توان روی دیتابیس ، رمز و پسورد گذاشت ؟ به طوری که اگر کاربر فایل را کپی کرد در سیستم دیگر نتواند آنرا باز کند و دیگر اینکه آیا این پسورد قابل اعتماد است ؟



شما می تونید برای DataBase کاربر تعریف کنید و براش پسورد بذارید ولی این فقط توی حیطه دیتابیس هست و جلوی دسترسی کاربر شما که روی سیستم خودش ادمین هست و می تونه فایل ها رو کپی کنه نمی گیره. و در نهایت اون می تونه فایل ها رو کپی کنه و جای دیگه دیتابیس رو rsestore کنه.

به نظرم باید شما راهکارهای دیگه ای برای امنیت بکار ببرید...
و برای اینکار لازمه اول بیشتر توضیح بدید که دقیقا می خواهید چیکار کنید؟

می خواهید جلوی نصب دیتابیس روی یه سیستم دیگه رو بگیرید ؟ یا اینکه می خواهید دیتابیس روی همون سیستم Safe باشه و یا چیز دیگه؟

S_VB.max
چهارشنبه 18 بهمن 1385, 22:22 عصر
ارتباط MySQL و Visual basic 6 در کامپیوتر Local

معرفی MySQL
MySQL تحت مجوز GPL به صورت رایگان و Open Source ارائه شده است و دارای API هایی برای زبان های C، ++C، Java، Perl، PHP و Python می باشد.
به علاوه مایکروسافت، پرووایدرهای OLEDB و ODBC را نیز در جهت برقراری ارتباط با داده های MySQL در ویندوز ارائه می کند.
با معرفی NET. به دنیای برنامه نویسی، MySQL.NET نیز به وجود آمد که به MySQL اجازه برقراری ارتباط با محیط NET. را بدون نیاز به OLEDB می دهد.
MySQL قابلیت آن را دارد که همزمان به چندین کاربر اجازه کار با سرعت زیاد دهد. همچنین قادر است به کاربران مجاز و یا غیر مجاز اجازه استفاده از منابع متفاوت را ارئه دهد .
MySQL زبان استاندارد جهانی بانکهای اطلاعاتی ( SQL ( Structured Query Language را به کار می گیرد.
در اینجا می خواهم طریقه ارتباط MySQL وVisual basic 6 را در کامپیوتر Local بوسیله پرووایدر ODBC شرح دهم

نصب بانک اطلاعاتی MySQL
1- برای دریافت جدیدترین نسخه MySQL به آدرس زیر مراجعه کنید:
http://dev.MySQL.com/downloads

2- نصب آن به سادگی نصب دیگر نرم افزارها انجام می شود و نیاز به توضیح اضافی ندارد .

ایجاد دیتابیس و جدول در MySQL :
پس از اینکه MySQl را نصب کردید اکنون به کمک یک ابزارهای وی‍‍ژ‍وال مثل MySQL Administrator و MySQL Workbench و ... دیتابیس و جدول خود در پایگاه داده ایجاد کنید .

نصب MyODBC Driver
MyODBC Driver در واقع پرووایدر و راه اندازی است که برای ارتباط VB وMysql احتیاج داریم ، شما می توانید آخرین نسخه را از آدرس زیر دریافت کنید :
http://dev.MySQL.com/downloads/connector/odbc
چنانچه از myODBC نسخه 3.51 استفاده می کنید توجه داشته باشید که این نسخه دارایbug است و باعث می شود ارتباط با وی بی بدرستی انجام نشود ، برای رفع این مشکل باید فایل Patch آنرا از مسیر زیر دریافت کنید :
ftp://ftp.MySQL.com/pub/MySQL/download/MyODBC-3.51.10-2-patch3.zip

پیشنهاد می شود از کانکتور mysql-connector-odbc-3.51.12-win.msi استفاده کنید تا این مشکل را نداشته باشید .

ایجاد یک MyODBC DSN روی ویندوز :
DSN=Data Source Name
برای اضافه کردن و پیکر بندی یک منبع داده جدید روی ویندوز ، می باید از ODBC Data Source Administrator استفاده کنید در واقع این ODBC Administrator اطلاعات کانکشن منبع داده شما را بروزرسانی می کند .
برای باز کردن ODBC Administrator وارد منوی Start شده سپس Control Panel وبعد Administrative Tools و در نهایت هم (Data Sources (ODBC را دو بار کلیک کنید .
پنجره ODBC Data Source Administrator مطابق شکل زیر ظاهر می شود :


http://www.shaygan.com/UserFiles/Image/vb/image1.jpg

مراحل اضافه کردن یک منبع داده
1-ODBC Data Source Administrator را باز کنید .
2-در پنجره ODBC Data Source Administrator روی دکمهAdd کلیک کنید ، پنجره جدیدی با نام Create New Data Source ظاهر می شود .
3-MySQL ODBC 3.51 Driver را انتخاب و سپس دکمه Finish را کلیک کنید پنجره دیگر به نام Connector/ODBC - Add Data Source Name باز می شود .
اکنون در این پنجره مراحل زیر را انجام دهید :
1- در فیلد Data Source Name نام منبع داده خود را وارد کنید( این نام می تواند هر چیزی باشد )
2- در فیلد Server باید آی پی محلی که Mysql قرار دارد را وارد نمایید شما در این فیلد آی پی 127.0.0.1 را وارد کنید .
3-اگر برای بانک یوزر و پسورد تعریف کرده اید آنها را در فیلدهای User و Password بنویسید در غیر اینصورت فقط کافی است در فیلد User عبارت root را وارد کنید .
4- نام دیتابیس خود در فیلد Database وارد کنید .

http://www.shaygan.com/UserFiles/Image/vb/image2.jpg

دکمه OK را کلیک کنید تا این منبع داده اضافه شود .

ایجاد پروژه ویژوال بیسیک :
اکنون در محیط ویژوال بیسیک یک پروژه جدید از نوع Statndard EXE ایجاد کنید .
از پنجره Refernces (واقع در منوی Project) کتابخانه Microsoft ActiveX Data Objects 2.8 را به پروژه خود اضافه کنید .
یک dataGrid ، یک دکمه به نام CmdLocalConnect وپنج Text Box به نامهای TxtIP ،TxtDatbase ، Txttable ، TxtUserID ، Txtpsw روی فرم بگذارید .
اکنون دستورات زیر را برای فرم خود Copy و Paste کنید :


Public db As New ADODB.Connection
Public rec As New ADODB.Recordset

Private Sub CmdLocalConnect_Click()

db.CursorLocation = adUseClient

db.Open "DRIVER=MySQL ODBC 3.51 Driver;SERVER=" & TxtIP.Text & "; DATABASE=" & TxtDatbase.Text & ";UID=" & TxtUserID.Text & ";PWD=" & Txtpsw.Text & ";" & "OPTION=1 + 2 + 8 + 32 + 2048 + 163841;"

rec.Open "select * from " & Txttable, db, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = rec

End Sub


برنامه را اجرا کنید
در TxtIP عبارت Localhost و یا آی پی 127.0.0.1 و یا نام کامپیوتر ، در TxtDatbase نام دیتابیس ، در Txttable نام جدول ، در TxtUserID نام کاربر تعریف شده برای دیتابیس و در Txtpsw هم رمز عبور را وارد کنید .

منبع: http://www.shaygan.com/show.php?idsub=211

S_VB.max
پنج شنبه 19 بهمن 1385, 11:31 صبح
می خواهید جلوی نصب دیتابیس روی یه سیستم دیگه رو بگیرید ؟ یا اینکه می خواهید دیتابیس روی همون سیستم Safe باشه و یا چیز دیگه؟

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

reza_rad
شنبه 21 بهمن 1385, 10:23 صبح
می تونید از کدینگ هایی مختلفی که وجود داره استفاده کنید مثل MD5 و ...
ولی شخصا توصیه نمی کنم تمام دیتاهای دیتابیس رو کد کنید چون مسلما دیکد کردنشون زمان زیادی می بره و کارایی اپلیکیشن شما رو میاره پایین

شما می تونید فقط Mysql رو روی اون سیستم نصب کنید بدون هیچ GUI برای کار کردن با اون مثل PhpMyadmin و mysqlqueryBrowser و ...
در اینصورت یک کاربر معمولی نمیاد خودش Mysql Gui نصب کنه و بره سراغ دیتابیس شما!
مگه اینکه اینکاره باشه که دیگه کاریش نمیشه کرد.
ضمن اینکه شما برای Mysql ای که نصب کردی پسورد اگه بذاری کاربر حتی اگه ادمین اون سیستم هم باشه نمی تونه بدون پسورد وارد بشه و دیتاها رو ببینه فقط تنها کاری که می تونه بکنه Remove کردن Mysql هست و نصب دوباره اون که این رو هم کاریش نمیشه کرد.

در کل در مورد کاربران عادی چنین مسایلی با راه حلهای بالا قابل حل هست و مشکلی پیش نمیاد.