سلام
یک فرم لاگین ساخته ام اما مشکلاتی دارد اگر دوستان کمک کنند و راهنمایی بفرمایند ممنون می شوم
پس از وارد کردن نام کاربری، رمز عبور هر کدام از پرسنل داخل جدول که وارد میکنم لاگین میشود
سپاسگزارم
Login.rar
سلام
یک فرم لاگین ساخته ام اما مشکلاتی دارد اگر دوستان کمک کنند و راهنمایی بفرمایند ممنون می شوم
پس از وارد کردن نام کاربری، رمز عبور هر کدام از پرسنل داخل جدول که وارد میکنم لاگین میشود
سپاسگزارم
Login.rar
آخرین ویرایش به وسیله m3343kh : شنبه 15 اردیبهشت 1403 در 20:16 عصر دلیل: آپلود فایل
سلام
من از Access زیاد سر در نمیارم ولی بنظر من امنیت کافی نداره
و اینکه نام کاربری یا UserID کلمه انگلیسی باید باشه نه عدد مثلا ROSTAM
Private Sub Command6_Click()
If Nz(Me.txtUsername, "") = "" Then
MsgBox "äÇã ˜ÇÑÈÑí ÑÇ æÇÑÏ ˜äíÏ", vbCritical
Me.txtUsername.SetFocus
Exit Sub
End If
If Nz(Me.txtPassword, "") = "" Then
MsgBox "ÑãÒ æÑæÏ ÑÇ æÇÑÏ ˜äíÏ", vbCritical
Me.txtPassword.SetFocus
Exit Sub
End If
If Nz(DLookup("UserID", "Users_tbl", "UserID='" & Me.txtUsername & "'"), "") = "" Then
MsgBox "äÇã ˜ÇÑÈÑí ÇÔÊÈÇå ÇÓÊ", vbCritical
Me.txtUsername.SetFocus
Exit Sub
End If
Dim dbs As Database
Dim rs As Recordset
Dim strSQL As String
Set dbs = CurrentDb
strSQL = "SELECT * FROM Users_tbl WHERE (((Users_tbl.UserID)='" + Me.txtUsername + "'));"
Set rs = dbs.OpenRecordset(strSQL)
If rs.RecordCount = 0 Then Exit Sub
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
'get results using rs.Fields()
Else
End If
If Not Nz(DLookup("Password", "Users_tbl", "Password='" & Me.txtPassword & "'"), "") = rs.Fields(4) Then
MsgBox "ÑãÒ æÑæÏ ÇÔÊÈÇå ÇÓÊ", vbCritical
Me.txtPassword = Null
Me.txtPassword.SetFocus
Exit Sub
End If
DoCmd.Close acForm, "Login_frm"
DoCmd.OpenForm "Main_frm"
End Sub
.......................
آخرین ویرایش به وسیله eb_1345 : یک شنبه 16 اردیبهشت 1403 در 13:20 عصر
سلام و روز خوش
بگذریم که روشی که دوستمون به کار بردن به حدی فاجعه بار هست که با هیچ دیتابیسی امنیت نداره،
ولی لازم هست این "امنیت نداشتن اکسس" باز بشه که چیش و کجاش و در مقایسه با چه چیزی امنیت نداره.
من با اجازتون دوباره پست خودم در خبر: تصاویری از یک برنامه حسابداری در دست تهیه (barnamenevis.org) رو اینجا کپی میکنم:
گفته شما البته (کمابیش) درسته، ولی دقیق نیست چون scope امنیت تعریف نشده؛
مثلا اگر منظور از امنیت احتمال corrupt شدن فایل دیتابیس باشه، این وضعیت برای هر دیتابیس file-based مثل SQLite هم هست.
همچنین اگر مثلا یک اپلیکیشن WinForms با سی شارپ بنویسیم ولی backend هنوز اکسس باشه باز هم امنیت فراهم نشده.
و این که: در یک دیتابیس file-based امنیت خود فایل دیتابیس در برابر پاک کردن (عمدی یا غیرعمدی) فایل توسط یک کاربر ضعیف هست درسته.
ولی زمانی که هارددیسک خراب بشه، امنیت هر نوع دیتابیسی که بکاپ منظم و فیزیکی خارج از محل اصلی نداشته باشه، کلا دیگه بی معنی میشه.
اگر منظور امکان دستکاری دیتا خارج از برنامه باشه (tampering)، در اکسس برای یک حرفهای راهش هست و بخشی امنیت برمیگرده به شرایط کاری جایی که برنامه نصب میشه.
ولی حتی با وجود SQL server هم، اگر تمهیدات لازم پیاده نشه این راهها هست.
اگر منظور از امنیت، سورس کد برنامه است که خب accde هم وضعیت خیلی خوبی داره.
خلاصه این که اون امنیتی که مد نظر شما هست باید براش هزینه کرد:
1- استفاده از DBMS بر اساس سرویس (service-based) مثل SQL
2- استفاده از سرور مستقل بدون توجه به تعداد کاربر
3- تمهیدات امنیتی در سطح شبکه (تعریف کاربرها - سطح دسترسیها و ...)
4- تمهیدات امنیتی در خود سرور دیتابیس
5- برنامه بکاپ فیزیکی منظم خارج از سرور
6- داشتن متخصصی که همه این ها رو هندل کنه.
همه اینها که باشه اگر از اکسس بعنوان frontend استفاده بشه دیگه تفاوتی با اپلیکیشن WinForms نداره.
خلاصه این مبحثی هست که نیاز به تاپیک مستقل داره (چند تایی هست اینجا)