Previous Table of Contents Next


Developer Privileges

The user privileges are simple and straightforward. The next set of privileges relates to developers who may be working with the system (see Table 13.3). These privileges can be a little trickier in that you may not want to give out all the developer privileges in your instance (there are some rather powerful ones).

Table 13.3. The developer privileges.

Privilege Description

CREATE CLUSTER Creates clusters of tables that the developer owns. The developers can also drop clusters that they own.
CREATE PROCEDURE Creates stored procedures, packages, and functions owned by the developer. The developers can also drop any of these objects that they own.
CREATE DATABASE LINK Defines a database link. This feature is similar to a synonym because it is a named pointer to the other database. A key difference is that you store the Oracle ID and password for the remote system as part of the link, thereby establishing access privileges in the remote system. The developers can also drop any database links that they create.
CREATE PUBLIC SYNONYM Creates an alternative name for referencing a database object such as a table or view. Any user in the instance can use this name to make a call for that object. Object privileges are still needed for that user to have access to an object. In certain situations, you may want to give this privilege only to DBAs or certain senior developers.
DROP PUBLIC SYNONYM Deletes an alternative name for referencing a database object that is available to all users in that instance. In certain situations, you may want to give this privilege only to DBAs or certain senior developers.
CREATE SEQUENCE Creates a sequence owned by the developer. The developers can also drop any sequences that they create.
CREATE SNAPSHOT Creates a local copy of a table located on another Oracle instance. The developers can also drop any snapshots that they own.
CREATE SYNONYM Creates a private synonym (for the developer’s use only). The developers can also drop any private synonyms that they own.
CREATE TABLE Creates a table. The developers can also create indexes on and drop tables that they own.
CREATE TRIGGER Creates a trigger (command executed when a specified event occurs) owned by the developer. The developers can also drop triggers that they own.
CREATE VIEW Creates a view owned by the developer. The developers can also drop views that they own.
UNLIMITED TABLESPACE Allows the developers to create objects that consume as much space in any tablespace as is available. This overrides any quotas assigned in that tablespace. You could consider this to be very much like an “any” privilege.
CREATE TYPE Creates a new object type.
DROP TYPE Drops the object type.
CREATE LIBRARY Creates a new object library.
DROP LIBRARY Drops the object library.

These are the privileges that are normally considered for developers. You may find cause to grant some of the “any” privileges described in the next section or even certain database maintenance privileges to certain developers. However, this is the common list that you should consider and a good place to start.

DBA Privileges

One of the candidates for the most powerful but dangerous features in the Oracle system is what I call the “any” privileges (see Table 13.4). If you grant CREATE TABLE to developers, they have the power to destroy (via the SQL drop table command) tables that they have created. However, if they had the DROP ANY TABLE privilege, they can destroy any table in the system. This is a serious privilege. DBAs need to think of this every time they execute destructive commands because, by default, they have most of these “any” privileges assigned to them. In many cases, this is needed. What happens when a developer leaves the company and has a lot of personal tables that are no longer needed? The DBA can delete these tables and drop the user from the system. However, be aware that if you drop a table, especially one referenced by a public synonym, you may not get the table you anticipated, and your DROP ANY TABLE privilege allows you to do it. Enough said. Please be careful when you use your “any” privileges.


Caution:  
DBA accounts have most of the “any” privileges by default. This enables you to do almost anything in the system. Be extremely careful that your syntax and purpose are correct before issuing a command that takes advantage of your “any” privileges.


Previous Table of Contents Next
Используются технологии uCoz