System Tables

In system tables, Microsoft Jet stores information about each of the objects. These tables are much like the tables you create in a database — with a few exceptions. First, they are identified internally as system objects so that you can differentiate your regular tables from system tables. Secondly, some system tables are inherently read-only. Microsoft Jet prevents you from updating the contents of some system tables to avoid breaches in security. The following table describes each of the system tables.

Warning The existence and structure of system tables are subject to change in every revision of Microsoft Jet. When their format changes or they disappear, applications that use system tables may no longer work. System tables are documented here solely for the purpose of giving you a better understanding of how Microsoft Jet works internally.

System table Description
MSysACES Stores each object’s permission information for each object for each user and group. As discussed in Chapter 10, “Managing Security,” Microsoft Jet implements security by using a workgroup model. In this model, users are assigned access to specific objects through permission settings.
MSysObjects Stores additional information about objects in the database, including tables and queries. The ID field in this table is used to identify objects within other system tables. This table extends the application-independent nature of Microsoft Jet by including binary fields that allow the host application (such as Microsoft Access) to store information about application-specific objects such as forms, reports, and modules.
MSysQueries Stores information about the queries stored in the database. This table includes information about the type of query, the tables and fields it uses, and its criteria, sorting, and parameters.
MSysRelationships Stores information about each of the relationships in the database, including information about the tables and fields used in the relationship.

Microsoft Access Users Microsoft Access defines its own additional system tables to store application-specific information. These include MSysCmdbars, MSysIMEXColumns, MSysIMEXSpecs, MSysModules, and MSysModules2. When you create a Microsoft Jet database by using Microsoft Access, these system tables are automatically created.