Data dictionaries significantly simplify the process of working with encrypted tables. With free tables, each table can have a different password, and this password must be submitted to ADS prior to accessing the associated table.
With data dictionaries, a single password is applied to all encrypted tables. Better still, there is no longer any need to pass the table password to ADS prior to accessing an encrypted database table. Instead, ADS reads the password from the data dictionary.
Before you can encrypt the tables of your data dictionary, you must enable table encryption for your database tables and define the encryption password. Use the following steps to enable table encryption for the DemoDictionary data dictionary:
Right-click the data dictionary node (labeled “DemoDD,” our alias for DemoDictionary) in the Advantage Database Manager tree view, and select Properties from the displayed popup menu. The data dictionary node is the root node of the tree view, and its label is the alias DemoDD. The Advantage Database Manager responds by displaying the data dictionary properties dialog box, shown in Figure 4-4.
Figure 4-4: You display the data dictionary properties dialog box by right-clicking the data dictionary node in the tree view, and selecting Properties.
Check the Enabled checkbox in the Table Encryption section of the data dictionary properties dialog box.
Next, click the Change Encryption Password button to display the Change Password dialog box.
At New Password, enter password. Click Save when you are done.
Now click OK on the data dictionary properties dialog box to save the data dictionary’s properties.
The table encryption password and your data dictionary administrator’s password are separate and serve different purposes. The table encryption password provides the key for encrypting your data. The data dictionary administrator’s password provides you with administrative access to the data dictionary. We are using the same word, “password,” for these two passwords merely as a convenience, one that is intended to simplify the number of passwords that you have to remember while working with the examples in this book. Typically, you would want to use two different passwords in your applications, as well as passwords that are more difficult to guess.
Once you have enabled encryption for the data dictionary, you can selectively encrypt tables in the data dictionary. Once encrypted, a table’s contents are scrambled on disk, which prevents someone from examining your data with a low-level file viewer.
Table encryption also is beneficial because all table and memo data transmitted over the network (including the Internet) are in encrypted form, so that someone using network sniffer utilities cannot see your raw table and memo data.
Use the following steps to encrypt the two tables of this data dictionary:
If the TABLES node in the Advantage Database Manager tree view is not expanded, click the + next to this node to display the nodes for the CUSTOMER and EMPLOYEE tables.
Right-click the CUSTOMER node and select Encrypt. After a brief moment, the glyph that appears to the left of the CUSTOMER table node will change. The new glyph depicts an encrypted table.
Now right-click the EMPLOYEE node and select Encrypt. The glyph for this node will soon reflect that this table is also encrypted.
If you enable encryption for a data dictionary after binding tables to it, you must manually encrypt each table using the technique demonstrated in the preceding section. However, if you enable encryption prior to adding existing tables, those tables will be encrypted as they are added to the data dictionary. As a result, if you are creating a data dictionary from existing tables, you can save yourself some time by enabling encryption prior to adding the tables.
Use the following steps to add four more tables to the data dictionary:
Right-click the TABLES node and select Add Existing Table(s).
Using the Open dialog box, navigate to the directory in which you copied the sample tables, if necessary. Then, while keeping the CTRL key depressed, click the DEPARTMENTS.ADT, INVOICE.ADT, ITEMS.ADT, and PRODUCTS.ADT tables to select them. With these four tables selected, click Open.
The Advantage Database Manager binds these four tables to the data dictionary, encrypting them in the process.
Your data dictionary should now contain six tables, as shown in Figure 4-5.
Figure 4-5: A total of six tables have been bound to this data dictionary.