Last updated: before December, 1998
In v2.1 you can give each .dbf a password which is set in the FILE / DATABASE OPTIONS menu in design mode. Passwords can be set for either read-only or read-write access. However, the user has to enter a password for each joined .dbf that requires it.
A better alternative may be to create your own security system. The first view that users see could prompt them for an ID and password, this checks against a list of users and sets a variable field to their security level. All macros that switch to a view could then check if the current user has the right access level.
In v3.0*, is exactly the same but passwords are set in TOOLS / PREFERENCES.
v96 and v97 come with a team security feature. See the manuals and / or help for details.
Database encryption (introduced in v96?) will most likely protect the database from any simple attempts at decrypting it, but most methods of encryption are likely to get cracked within the course of a few minutes in the hands of a skilled crypt-analyst with the proper equipment.