Skip Headers< /a>

Oracle® Label Security Administrator's Guide
10g Release 1 (10.1)

Part Number B10774-01
Go to Documentation H
ome
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to
Index
Index
< img src="../../dcommon/gifs/mix.gif" alt="Go to Master Index" border="0">
Master Index
Go to Feedback p
age
Feedback

Go to previous page
Previous
Go to next page
Next
View PDF

12
Using Oracle Label Security with a Distributed Database

This chapter describes special considerations for using Oracle Label Security in a distributed conf iguration. It contains the following sections:

An Oracle Label Security Distributed Configuration

A network configu ration that supports distributed databases can include multiple Oracle9i servers, or other database servers, running on the same or different operating systems. Each cooperative server in a distributed system communicates with other clients a nd servers over a network.

Figure 12-1 illustrates a distributed database that includes clients and servers with and without Oracle Label Security. As described in this chapter, if you establish database links from the WESTERN_REGION database to the EASTERN_REGION database, you can access data if your userid on EAST ERN_REGION is authorized to see it, even if locally (on WESTERN_REGION) you do not have this access.

Figure 12-1 Using Oracle Label Security with a Distributed Database

Text description of olsag019.gif follows

Text description of the illustration olsag019.gif

Connecting to a Remote Database Under Oracle Label Security

Distributed databases behave in the standard way with Oracle Label Security: the local us er ends up connected as a particular remote user. Oracle Label Security protects the labeled data, whether you connect locally or rem otely. If the remote user has the appropriate labels, you can access the data. If not, you cannot access the data.

The database link sets up the connection to the remote database and identifies the user that will be associat ed with the remote session. Your Oracle Label Security authorizations on the remote database are based upon those of the remote user identified in the database link.

For example, local user JANE might connect as remote user AUSTEN, in the database referenced by the connect string sales, as follows:

CR
EATE DATABASE LINK sales
  CONNECT TO austen IDENTIFIED BY pride
  USING 'sales'

When JANE connects, her authorizations are based on the labels and privil eges of remote user AUSTEN, since AUSTEN is the user identified in the database link. When JANE issues the first reference to the rem ote database, the remote session is actually established. For example, the remote session would be created if JANE enters:

SELECT * FROM emp@sales

You need not be an Oracle Label Security policy user in the local database. If you connect as a policy user on the remote database, you can ac cess protected data.

Establishing Session Label and Row Label for a Remote Session

When connecting remotely, you can directly control the session label and row label in effect when you establish the connection. When you connect, Oracle Label Security passes these values (for all policies) over to the remote database. Notice that:

  • The local session label and row label are used as the default for the rem ote session, if they are valid for the remote user.
  • The remote session is cons trained by the minimum and maximum authorizations of the remote user.
  • Although the local user's session labels are passed to the remote database, the local user's privileges are not passed. The privileges for th e remote session are those associated with the remote user.

Consider a local user, Di ana, with a maximum level of HS, and a session level of S. On the remote database, the remote user identified in the database link ha s a maximum level of S.

  • If Diana's session label is S when the database link is established, the S label is passed over. This is a valid label; Diana can connect and read SENSITIVE data.
  • If Diana's session label is HS when the database link is established, the HS level is passed across, but it is not valid for the remote user. Diana will pick up the remote user's default label (S).

Be aware of the label at which you are running the first time you connect to the remote database. The firs t time you reference a database link, your local session labels are sent across to the remote system when a connection is made. After ward you can change the label, but to do so you must execute the SA_SESSION.SET_LABEL procedure on the remote database.

Diana can connect at level HS, set the label to S, and then perform a remote access. Connection is impli citly made when the database link is established. Her default label is S on the remote database.

On the local database, Diana can set her session label to her maximum level of HS, but if the label of the remote user is set t o S, then she can only retrieve S data from the remote database. If she performs a distributed query, she will get HS data from the l ocal database, and S data from the remote database.

Setting Up Labels in a Distributed Environment

It is advisable to use the same label component definitions and label tags on any database that is to be protec ted by the policy.

Setting Label Tags in a Distributed Environment

In a distributed environment you may choose to use the same label tags across multiple da tabases. However, if you choose not to use the same tags across multiple databases, you should retrieve the c haracter form of the label when performing remote operations. This will ensure that the labels are consistent.

In the following example the character string representation of the label string is the same; the label tag, howe ver, does not match. If the retrieved label tag has a value of 11 on the WESTERN_REGION database, but a tag of 2001 on the EASTERN_RE GION database, the tags have no meaning. Serious consequences can result.

Figure 12-2 Label Tags in a Distributed Database

Text description of olsag020.gif follows

Text description of the illustration ols ag020.gif

When retrieving labels from a remote system, you should return the character string representation (rather than the numeric label tag), unless you are using the same numeric labels on both databases.

If you allow Oracle Label Security to automatically generate labels on different databases, the label tags will not be identical. Character strings will have meaning, but the numeric values will not, unless you have predefined labels with the same label tags on both instances.

To avoid the complexities of label tags, you ca n simply convert labels to strings upon retrieval (using LABEL_TO_CHAR) and use CHAR_TO_LABEL when you store labels. Operations will succeed as long as the component names are the same.

Setting Numeric Form of Label Components in a Distributed Environment

In a distributed environment you should use the same relative ranking of the numeric fo rm of the level component, in order to ensure proper sorting of the labels.

In the followin g example, the levels in the two databases are effectively the same. Although the numeric form is different, the relative ranking of the levels' numeric form is the same. As long as the relative order of the components is the same, the labels are perceived as identi cal.

Figure 12-3 Label Components in a Distr ibuted Database

Text description of olsag021.gif follows

Text description of the illustration olsag021.gif

Oracle Label Security supports all standard Oracle9i distributed configurations. Whether or not you can access protected data depends on the policies installed in each d istributed database.

Be sure to take into account the relationships between databases in a distributed environment:


< td align="center" valign="top">Go to next page
Next
Go to previous page
Previous
Oracle
Copyright © 2000, 2003 Oracle Corporation All Rights Reserved.
G
o to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index

Feedback