Securing Your Database
Microsoft Access provides flexible options for securing your database objects. By default, security features are hidden from both designers and users. However, you can apply security settings as needed—for example, restricting access to specific objects to prevent unauthorized modifications. For higher levels of protection, Access can be configured to limit access paths to your data, allowing only controlled methods for retrieving information from tables. In networked environments, implementing a well-structured security system not only safeguards your data but also enhances the maintainability of your application by minimizing potential risks.
Security Concepts.
To understand Access security, you'll need to grasp four basic security concepts: users and groups have permissions on objects.
- In Microsoft Access, a user represents an individual who interacts with the application. Each user is identified by a username, password, and a unique Personal Identifier (PID). To access a secured Access application, users must enter their username and password. Without valid credentials, they cannot open or interact with any database objects.
- In Microsoft Access, a group is a collection of users. Groups are typically used to represent organizational roles (e.g., Development, Accounting) or security levels (e.g., High, Low). Instead of assigning permissions individually to each user, you can assign them to groups. Then, by simply adding users to the appropriate groups, you make the security system easier to manage and maintain.
- Access permission is the right to perform a single operation on an object. For example, a user can be granted read data permission on a table, allowing that user to retrieve data from that table. Both users and groups can be assigned permissions.
- An access security object is any one of the main database Container objects (Table, Query, Form, Report, Macro, or Module) or a database itself.
Because both users and groups can be assigned permissions in Microsoft Access, determining a user's actual access level may require checking multiple sources. A user's effective permissions are the least restrictive combination of:
For example, suppose Mary has not been granted direct (explicit) permission to open the Accounting form. However, she is a member of the Supervisors group, which does have permission to open that form. In this case, Mary will still be able to open the form because her group membership grants her that access. Group permissions (implicit) are combined with user permissions (explicit), and the most permissive setting takes effect.
Creating a Microsoft Access Workgroup Information File
When you install Microsoft Access, the setup program automatically creates a default workgroup information file named System.mdw, using the name and organization details you provide. Since this information is often easy to guess, unauthorized users could potentially recreate this file and assume administrative privileges (by joining the Admins group) within that workgroup. To secure your database, it is recommended to create a new workgroup information file and assign a Workgroup ID (WID)—a unique, secret value. Only those who know the WID will be able to recreate the file and access the corresponding administrative rights.
The procedures outlined in this document assume that Microsoft Access 2000 is installed on your computer. While the same steps generally apply to other versions of Microsoft Access, the location of the Workgroup Administrator utility (Wrkgadm.exe
) and the default workgroup information file (System.mdw
) may vary depending on the version you are using.
- Exit Microsoft Access (Access 2000 or earlier versions)
To start the Workgroup Administrator, open the language folder (C:\Program Files\Microsoft Office\Office\1033 is for US English), then double-click Wrkgadm.exe. The Workgroup Administrator image is given below:
Select the Create option to create a new Workgroup Information File.
Select the Join... Option to join a Workgroup Information File that you have created earlier.
Alternatively, you can use the Microsoft Access Workgroup Administrator shortcut in the \Program Files\Microsoft Office\Office folder.
To run Workgroup Administrator in Microsoft Office 2003:
Start Microsoft Access 2003
Select the Tools menu, point the mouse at Security, and click the Workgroup Administrator option.
In the Workgroup Administrator dialog box, click Create.
In the Workgroup Owner Information dialog box, type your name and organization, and then type any combination of up to 20 characters for the workgroup ID.
Important: Be sure to write down the exact entries for the Name, Organization, and Workgroup ID (WID)—including the correct use of uppercase and lowercase letters—and store them in a secure location. If you ever need to recreate the workgroup information file (for example, due to corruption or accidental deletion), you must enter the exact same information. If you forget or lose any of these details, they cannot be recovered, and you may permanently lose access to your secured databases.
Type a new name for the new workgroup information file, and then click OK.
By default, the workgroup information file is saved in the language folder (C:\Program Files\Microsoft Office\Office\1033, for U.S. English). To save in a different location, type a new path, or click Browse to specify the new path. The new workgroup information file is used the next time you start Microsoft Access. Any user and group accounts or passwords that you create are saved in the new workgroup information file.
To have others join the workgroup defined by your new Workgroup Information File, copy the file to a shared folder and then have each user run the Workgroup Administrator (wrkgadm.exe) as explained above on their own PC to join the common workgroup information file.
To join a Microsoft Access Workgroup using Workgroup Administrator.
- Follow steps 1 & 2 as explained above, depending on the Access Version (Access 2000 and earlier or Access 2003).
- In the Workgroup Administrator dialog box, click Join.
li>Type the path and name of the Workgroup Information File that defines the Microsoft Access workgroup you want to join and click OK, or click the Browse button to find the Workgroup Information File on disk, click Open, then click OK to close the dialog control.
Next time you start Microsoft Access, it uses the User and Group Accounts and Passwords stored in the workgroup information file for the workgroup you have joined.
Log on to a Microsoft Access workgroup
Activate the Logon dialog box
Until you activate the login procedure for a workgroup, Microsoft Access automatically logs in all users at startup using the predefined Admin account, and the login dialog box is not displayed.
To activate the logon dialog box, you must set a password for the default Admin user account. This prompts users to enter their username and password to access and work with your secured databases.
- Start Microsoft Access.
- On the Tools menu, point to Security, and then click User and Group Accounts.
- Click the Users tab, and make sure that the predefined Admin user account is highlighted in the Name box.
- Click the Change Logon Password tab, click the New Password box, and type the new password. Don't type anything in the Old Password box.
To maintain the security of your password, Microsoft Access displays asterisks (*) as you type. Passwords can be from 1 to 20 characters and can include any characters except the ASCII character 0 (null). Passwords are case-sensitive.
- Verify the password by typing it again in the Verify box, and then click OK.
The Logon dialog box is displayed the next time any member of the workgroup that you joined starts Microsoft Access and opens a database. If no user accounts are currently defined for that workgroup, the Admin user is the only valid account.
Note: When you secure a database, you create User Accounts in a Microsoft Access workgroup, and then assign permissions for Databases, Tables, Queries, Forms, Reports, and Macros to those Accounts and to any Group Accounts to which they belong. Users log on to Microsoft Access by typing a Username and password in the Logon Dialog Box. When Users log on to Microsoft Access by using their Accounts, they have only the permissions associated with those accounts.
Keep the following points in mind while implementing MS-Access Security:
Members of the Admins group have full permissions on all database objects and complete authority to grant or revoke permissions for other users or groups.
The Owner of the Database (the User who created the database) has full authority (like members of the Admins Group) to give permissions or to give ownership of objects to other Users or Groups.
Create an Administrator account for yourself. Click to show how.
Remove the default user Admin from the Admins Group.
Caution: Before proceeding with Step 4, ensure to create a new administrator account (as a member of the Admins group) for yourself. Otherwise, you risk locking yourself out of the workgroup information file.
Remove all permissions on all objects for the User group.
By default, all users are members of the Users group. Even if you assign security permissions at the individual user or custom group level, those settings will have no effect if the Users group retains full permissions. This is because users automatically inherit the permissions of the Users group.
MS-ACCESS Security Links.
- Create a security user account
- Create a security group account
- Add users to security groups
- Remove users from security groups
- Delete a security user account
- Delete a security group account
- Create or change a security account password
- Clear a security account password
- Assign or remove permissions
- Assign default permissions for new tables, queries, forms, reports, and macros.
- View or transfer ownership of Objects
- Transfer ownership of an entire database to another administrator
- Permit others to view or run my query but not change data or query design.
- Change default permissions for all new queries.
- RunPermissions Property
- Convert Microsoft Access 95 or 97 secured databases.
- Convert a workgroup information file from a previous version of Microsoft Access.
- Share a previous-version secured database across several versions of Microsoft Access