Noname > 30-11-10, 10:15 AM
thamgianghao > 14-03-12, 10:53 PM
gianghaocon > 07-11-12, 02:50 PM
duyennguyen2008 > 05-12-12, 12:02 PM
(30-11-10, 10:15 AM)Noname Đã viết: Share by: daidong
Site: http://khoahocphothong.net
vui lòng giữ nguyên tác giả và site nếu bạn chia sẻ hoặc sử dụng nội dung này
--------------------------------------------------------------------------
Đã nhiều lần, ra nhiều hiệu sách với mong muốn tìm mua tài liệu hướng dẫn làm thế nào để tạo 01 Workgroup và phân quyền cho user cho một database, nhưng thiệt tình mà nói, sách thì có đó, nhiều lắm,. lắm luôn, nhưng hình như người ta viết chỉ để dành cho dân chuyên nghiệp hay giáo sư tiến sỹ gì đó đọc, chứ cở trình độ Hai Lúa, Ba Hưng nông dân miệt vườn như tôi thì thiệt tình mà nói đọc mà hiểu được … chết liền .
Bạn tôi khuyên nên tìm ở sách ngoại văn thử xem sao,.may ra?. nhưng khổ nỗi tiếng Em thì tôi rành lắm còn tiếng Anh thì nó biết tôi nhiều hơn là tôi biết nó.
--------------------------------
Tạo Workgroup và phân quyền là một công việc hơi bị khó, trước đây để đơn giản cho công việc tôi làm theo cách Tools=>Security=>Workgroup Aministrators và Join với Workgroup mặc định của MS Access.
Tuy nhiên theo cách này thì có một vài rắc rối ở chổ:
Access sử dụng luôn hệ thống user logon của windows luôn, do đó ta sẽ không biết, và không phân biệt được record nào là do user nào cập nhật, sửa, xóa…và hơn nữa, database windows sẽ dể dàng bị kiếm ra và tất nhiên số phận nó như thế nào thì các bạn cũng đã rõ.
---------------------------------
Trong hệ phân quyền thường hay có khái niệm về phân chia như: Groups gồm có Admins, Users, Accounts …và sau đó là các User trực thuộc các Groups.
Tuy nhiên dù phân chia thế nào đi nữa thì trong Access:
1-Chỉ có một và chỉ một User admin (hoặc tên cụ thể mà bạn gán cho quyền Admin) là có toàn quyền đối với phần mềm.( theo khuyến cáo của Access khi đặt tên cho user thi không nên đặt tên admin, mà là tên cụ thể sau đó gán cho quyền admin.)
2- Quyền hạn của user: là tùy thuộc vào quyền hạn của group mà user đó trực thuộc hoặc là quyền hạn mà bạn, đã gán trực tiếp cho user đó.
(Bạn, ở đây có nghĩa : Creator/Owner.)
3- Để tránh cho Access hiểu nhầm ý của bạn, nếu bạn đề cập tới Group Users (Nhóm có tên là Users) thì chữ Users phải có s phía sau, còn đề cập tới User (Người dùng) thì chữ User không có s….nên nhớ chỉ sai 1 li – làm lại từ đầu.
------------------------------------
Người có võ thì khi đánh ra có chiêu có thức, ta không có võ thì ta chơi võ vườn vậy, nghĩa là thấy đâu đánh đó và nhớ đánh cho trúng….còn đánh trật chịu khó đánh lại cái này người ta gọi là đánh lộn.
Làm cái gì cũng vậy, sự tập dượt ban đầu luôn là điều cần thiết tất yếu, phải có sai thì lần sau mới có kinh nghiệm làm trúng được, vì vậy các bạn hãy dượt chiêu trước.
Theo tôi nghĩ các bạn từ từ mà làm, step by step nha các bạn, bỏ qua phần nào bị loạn xà ngầu ,thì ráng chịu không phải lỗi của mình…
-----------------------------------
1/ Chuẩn bị :
-Tạo mới 1 Blank Database, save vào bất kỳ thư mục nào bạn muốn.
-Tạo một Unbound Form, và save lại giả sử ta đặt tên cho nó là Welcome.
-Ở chế độ form design tạo một unbound text box., không cần label, ta nhập vào ô text box công thức =CurrentUser.
-Tạo một Macro AutoExec để tự động mở form welcome sau khi khởi động.
-Thoát Access
-Mở lại Database: Giá trị hiển thị của text box trên form Welcome sẽ là Admin.
Mục đích của việc này là dùng để kiểm tra sau này quá trình tạo Workgroup và phân quyền của ta có đúng hay không.
2/ Tạo WorkGroup và Hệ Phân quyền.
Đóng Form welcome.
Chọn Tools=>Seuctiry=>User-Level Security Wizard
Cửa sổ wizard 1 xuất hiện.
Option 2 được chọn mặc định.
Trong phần này, mục đích là Access cho ta tự tạo riêng rẽ một Access Workgroup Database, và sau khi đươc tạo ra nó sẽ không có tác động với bất kỳ một Access Database nào khác ngoài Access Database đã được chọn.
Click Next để qua cửa sổ Wizard thứ 2
FileName: hiển thị tên đầy đủ và đường dẫn của file WorkGroup sẽ được create và save as, Access mặc định tên đó như sau: “ổđĩa:\thưmụcchứadatabase\security.mdw”, Nếu bạn không thích thì bạn có thể save Access Workgroup file ở thư mục khác và với tên khác bằng cách click vào browse
WID(WorkGroupID): là một chuổi ký tự và số có độ dài ít nhất là 4 và nhiều nhất là 20, chuổi ký tự đó như thế nào là tùy bạn, muc đích của việc này là Access dùng để tạo và mã hóa SecurityID (SID)nhằm phân biệt Workgroup Database của bạn và Workgroup mặc định của MS Access.
Your Name: tùy chọn.
Company: tùy chọn.
• I want to make this default my workgroup information file
• I want to creat a short cut to open my security-enhanced database
Với 2 option này chúng ta chọn cái thứ Option2, Nếu bạn chọn Option1 thì Access Workgroup này sẽ tác động tới tất cả các Access Database hiện hữu trên computer của bạn.
Click next để mở cửa sổ Wizard thứ ba
Vì database của chúng ta hiện là blank Database do đó nó chỉ có hiện ra 1 form là welcome và 1 macro là autoexec.
Chọn thẻ All Objects, chọn Select All
Nếu bạn thực hiện với 1 full datbase cũng làm như vậy.
Click next để qua cửa sổ Wizard thứ tư.
Đây là sự phân quyền của Access cho Groups, Bạn nên xem kỹ và quyết định quyền hạn của Groups.
Để có thể rõ hơn quyền hạn của group như thế nào bạn hãy click thử vào chữ Full Data Users chẳng hạn và hãy nhìn xem bên tay phải Group Permissions lập tức sẽ diễn giải ra cho bạn hiểu quyền của Group: Full Data Users.
Bạn không nên bỏ trống các UsersGroup Permissions này và phải thiết lập các giá trị cho nó.
Vd: chọn Full Data User, Group ID nhập vào DataUsers (hay cái tên gì đó do bạn nghĩ ra)
- Giả sử tôi nhập như sau
Group Name GroupID
Backup Operators BKUsers
Full Data Users DataUsers
Full Permissions PermUsers
New Data Users NewUsers
Project Designers ProJUsers
Read-Only Users ROUsers
Update Data Users UpdUsers
Click next để qua cửa sổ Wizard thứ năm, sau khi thiết lập xong Wizard thứ tư.
Đây là nơi Access cho ta được gán quyền cho Groups tuy nhiên, theo khuyến cáo của Access thì ta nên chọn theo mặc định, option 2
(tất nhiên tôi cũng chưa có thử qua option 1, bạn nào có nhiều thời gian nên vọoc qua, nếu thấy hay hơn thì …truyền kinh nghiệm).
Click next để qua cửa sổ Wizard thứ sáu.
Tạo User List.
Giả dụ ngoài user admin ra còn có nhiều user khác nữa thì ở đây Access cho ta tạo và nhập trực tiếp user vào hệ thống, các bạn nên nhập đầy đủ và kiểm tra cẩn thận các thông số kế cả cho user admin
v/d:
User name: LocLoc (tên user)
Password: locloc (Pasword để logon)
PID (Personal ID): User01 (user ID)
[U]Các bạn lưu ý[/U] : Password để logon có phân biệt chữ hoa và chữ thường, vì vậy các bạn nhớ ghi ra, sau này khi logon ta dùng nó đề test Database.
click Add This User to the List để access nhập tên của user vào list.
Click Next để qua cửa sổ thứ bảy.
Nếu, lưu ý là Nếu ở cửa sổ Wizard thứ tư ta phân cho Group nào được quyền gì, thì ở đây ta sẽ sắp sếp cho user vào group, nghĩa là sau khi được gán vào groups, user đó sẽ thừa hưỡng và được thực hiện các quyền của groups mà nó trực thuộc.
----------------------------------------------------
(vd: ta chia 1 lớp học gồm 40HS ra làm 05 tổ (05 Groups), Tổ 1 là (GroupID là 1) chuyên làm bích báo và văn nghệ (Group Permissions) tổ 2 làm Văn nghệ, thể thao…và 01 Lớp Trưởng.
Như vậy sau khi chia xong ta có
(Tổ)Group HọcSinh(User)
1 - 10
2 - 10
3 - 10
4 - 10
- - 1
* Sau khi phân quyền, thì HS trong tổ 2 nếu muốn làm bích báo, khi mở các form-table-query.. Access sẽ báo HS đó không có permission để làm và ngược lại.
Ùa tại sao lại có tới 41 HS lận, bởi vì Lớp Trưởng ngoài vai trò là Admins(Groups) tầm soát mọi hoạt động của lớp anh ta cũng có vai trò của 1HS (User), vì vậy khi Tạo User list, ta nên tạo cho Admin có 2 tên+password+PID hoàn toàn khác nhau. Trừ ra trong trường hợp anh ta không tham gia vào hoạt động của lớp (không nhập dữ liệu cho database), thì ta có thể không tạo thêm user cho lớp trưởng (admin), lúc đó user list của chúng ta tổng cộng sẽ là 40.
Click next để qua cửa sổ thứ tám.
ở đây access đề phòng ta chưa copy dữ liệu gốc và tránh sự cố ngoài ý muốn nên access lưu giùm cho ta 1 bản copy của dữ liệu gốc với tên “tênfile.bak” và file này nằm ngoài vùng phủ sóng của Access Workgroup mà chúng ta sẽ và đang tạo ra.
Nếu các bạn cãm thấy còn thiếu thiếu cái gì hoặc muốn sửa chữa gì thì click back để quay lại, nếu xong thì click Finish để Access bắt đầu tạo Workgroup và level.
Sau khi tạo xong, access report lại cho chúng ta bản copy các thông tin mà chúng ta đã tạo và hỏi có lưu report, việc này thì tùy bạn.
Sau khi bạn đóng report, access sẽ tiến hành ngay lập tức việc tạo workgroup và level và khi nó thực hiện xong access yêu cầu bạn close database và mở lại.
Đóng Warning message và mở database lại (Alt+F+1).
Khi mở lại database thì có một Warning message.
Message báo rằng, đại loại là ta không có quyền (permission) để mở tabase này...
Trời đất, vậy nãy giờ chúng ta mất thời gian để làm gì, Xin thưa: Yên tâm đi, chẳng có gì đâu, đơn giản là database lúc này là có đầy đủ Workgroups và hệ phân quyền nên không mở theo cách bình thường được.
Bây giờ hãy thoát Access
3/ Chạy và kiểm tra lại sự phân quyền:
Kiểm tra thứ I
Hãy để ý trên Desktop Screen của bạn, sẽ có một Access Shortcut với tên database mà bạn đã đặt, Click vào Icon để vào database.
Màn Hình Logon của Acesss sẽ xuất hiện và yêu cầu Password. Hãy nhập password, Nếu muốn nhập với tư cách là admin hoặc là user khác thì hãy chỉnh sữa User name và nhập password tương thích cho user mà bạn đã tạo ra trong bước Wizard thứ sáu.
Sau khi logon, nếu Text box của form welcome hiện ra khớp với logon user (không phải là admin) là bạn đã thành công rồi đó – nhưng chỉ mới thành công phân nữa thôi, hãy test lai system bằng cách thoát Access và logon trở lại với tên user name khác để kiểm tra nếu kết quả tương ứng là cũng thành công phân nữa….
Điều này cho thấy, giả sử trong một mạng chia sẽ LAN ta có 10 máy, thì cho dù User logon ở bất kỳ máy nào thì khi nhập hay sửa, xóa,…dữ liệu thì Access sẽ căn cứ vào sự phân quyền của Creator/Owner cho user để thực hiện –Permit or Not- đồng thời ta cũng biết được luôn record này là do ai nhập, sửa, xóa…
Kiểm tra thứ II:
Chọn Tools=>security=>User and Group Permissions:
+ Nếu bạn logon với tư cách là user mà chỉnh sửa hoặc thêm được bất kỳ chức năng nào thêm ngoại trừ pasword của chính user, thì bạn đã làm sai, hãy làm lại (vậy mới gọi là khó chứ).
+ Sau khi đã test tất cả, mọi thứ đã OK-Welldone thì bạn cũng có thể import nói chung tất cả các object trong database cũ vào đây và và xem như cơ sở dữ liệu của bạn lúc này giống như đã được Upgrade lên một version mới.
+Sau khi đã import xong, vào Tool=>security=>User and Group Permission để kiểm tra và gán lại quyên cho user theo ý muốn, xong rồi tiến hành chạy thử, chay test xong, bước kế là bạn phải báo cho các user sử dụng phần mềm biết password để logon và công bằng nhất là cách để user thay đổi password như sau:
Chọn Tools=>Security=>User and Group Accounts; chọn Change Logon Password
Lưu ý:
Nếu passord đã thay đổi thì họ phải tự nhớ lấy, nêu quên kể như vô phương, kể cả chúng ta lấy quyền admin cũng không thể phục hồi hoặc tìm kiếm ở đâu thông tin password đó.
Hiện giờ tôi chưa tìm ra cách giải quyết cho vần đề này, tuy nhiên nếu các bạn nào rành về ADO, DAO và Jet thì đó là chuyện nhỏ hơn con nhỏ nhất.
Trong các bước wizard vừa nêu ở trên, ngoại trừ Modules Objects là Access Workgroup không có quản lý phân quyền, do đó nếu như trong database của bạn có VBA modules và để chống nhập thêm, sửa, xóa thì bạn phải dùng password bảo vệ cho nó bằng cách :Mở Module cần được bảo vệ=>Tools=>…Property chọn Protection nhập các thông tin của password và linh tinh vào đó., bạn có 10 modules làm 10 lần.
Để tránh database của mình bị người khác delete do nhầm hay cố ý, thì bạn phải bảo vệ Folder chứa nó bằng các phần mềm chống xóa hay gì đó thì tùy bạn, còn sợ … nếu người khác import data dữ liệu của bạn chăng, họ cứ việc, chẳng được đâu chỉ phí sức….
Bây giờ hãy thử right click vào short cut của database ta sẽ thấy Target của file lúc này như sau: "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" "ođĩa:\thưmụcchứa database\têndatabase.mdb" /WRKGRP "C:\thưmụcchứadatabase\Security.mdw"
Điều này giải thích lý do tại sao ta không mở file trực tiếp như cách cũ được.
Điều nữa, nếu bạn hỏi, tôi muốn sửa chút xíu cái Database WorkGroup mà tôi vừa làm xong có cách nào không thì trả lời: có cách duy nhất: Delete Database va database workgroup đó, Xong rename file “tênfile.bak” => “tenfile.mdb mọi việc như chưa từng có gì xảy ra, làm lại workgroup database mới theo ý.
Cho phép tôi đoán trước: Quá trình tạo và xóa Database + Database workgroup của bạn sẽ diễn ra ít nhất là 03 lần. Bạn nào càng nóng vội thì số lần càng tăng lên..
Tôi nói khi tạo xong Workgroup Database là các bạn thành công phân nữa là vì phần trên của tôi chỉ mới là lý thuyết, phần thực hành là ở các bạn, chưa kể sự hiệu chỉnh hằm bà lằng nhằng….
-------------------
Cuối cùng phần việc của mình đến đây là xong, xin nhường sân cho các bạn, chúc các bạn thành công.
-------------------------------------------------------
Lưu ý
Sau khi phân quyền, ngoài database gốc, thì Access tạo thêm cho ta 1 file workgroup dưới tên ...*.mdw
Để đề phòng sự cố xảy ra nếu như ai đó vô tình delete nó đi, hay là máy vi tính của chúng ta bị sự cố Virus hay là điện nguồn tăng đột ngột làm hỏng file dữ liệu hay file workgroup...
Sau đó, máy tính dù đã phục hồi được nhưng chưa chắc, workgroup database của chúng ta không bị ảnh hưởng,, do đó tồt nhất là các bạn nên:
Đừng bao giờ lưu database file và workgroup system của chúng ta ở ổ đĩa C:
Copy và save file workgroup systems (*.mdw) ra CD hay là USB cho chắc ăn.
Luôn và định kỳ back up database tất nhiên cũng là CD hay USB.
thegioibaola > 10-04-13, 01:04 PM