MDAC 2.5 SDK - Technical Articles


 

Overview of Security Administration

All security implementations work with essentially two types of entities. One type, the trustee, represents the users of the data as well as the applications that these users run. The other type, the database object, represents the data in the data source object. Database objects encapsulate objects, tables, views, and so on.

A trustee can be a user account, group account, or role, and are defined as follows:

Database objects are discrete entities that contain and expose data within the data store. Database objects can include tables, views, columns, stored procedures, forms, modules, queries, reports, object containers, schemas, and so on. Some providers might have the option of working with database object types rather than with specific objects. For example, the data source object might allow a provider to set access control properties for tables in general rather than requiring identification of a particular table.

Administering the security of the data source object consists of the following parts:

The three parts are independent of one another, but as a group, they determine the overall security of the data in the data source object. Each part can be implemented at a different security level than the others. For example, you could choose a strong implementation of authentication and a weak implementation of privacy. Such an approach would prevent unauthorized users from initializing the data source object, but it might allow sensitive data to be sent openly across a network, viewable by anyone with the right tools. Therefore, for the best security, you should choose implementations of each part that match the strength of the other parts. The security of the whole data source object is only as strong as the weakest of the security parts.

There are several ways to implement each of these areas of security administration. The following sections examine some of the available options for each part: