Information about the current users of a database and about their permissions is stored in the database system tables and system views.
For a description of each of these tables, see Chapter 9, “System Tables” in Reference: Building Blocks, Tables, and Procedures.
Most system tables are owned by the special user ID SYS. It is not possible to connect to the SYS user ID.
The DBA has SELECT access to all system tables, just as to any other tables in the database. The access of other users to some of the tables is limited. For example, only the DBA has access to the SYS.SYSUSERPERM table, which contains all information about the permissions of users of the database, as well as the passwords of each user ID. However, SYS.SYSUSERPERMS is a view containing all information in SYS.SYSUSERPERM except for the password, and by default all users have SELECT access to this view. All permissions and group memberships set up in a new database for SYS, PUBLIC, and DBA can be fully modified.
The following table summarizes the system tables containing information about user IDs, groups, and permissions. All tables and views are owned by user ID SYS, and so their qualified names are SYS.SYSUSERPERM and so on.
Appropriate SELECT queries on these tables generate all the user ID and permission information stored in the database.
Table |
Default |
Contents |
---|---|---|
SYSUSERPERM |
DBA only |
Database-level permissions and password for each user ID |
SYSGROUP |
PUBLIC |
One row for each member of each group |
SYSTABLEPERM |
PUBLIC |
All permissions on table given by the GRANT commands |
SYSCOLPERM |
PUBLIC |
All columns with UPDATE permission given by the GRANT command |
SYSPROCPERM |
PUBLIC |
Each row holds one user granted permission to use one procedure |
The following table summarizes the system views containing information about user IDs, groups, and permissions.
View |
Default |
Contents |
---|---|---|
SYSUSERAUTH |
DBA only |
All information in SYSUSERPERM except for user numbers |
SYSUSERPERMS |
PUBLIC |
All information in SYSUSERPERM except for passwords |
SYSUSERLIST |
PUBLIC |
All information in SYSUSERAUTH except for passwords |
SYSGROUPS |
PUBLIC |
Information from SYSGROUP in a more readable format |
SYSTABAUTH |
PUBLIC |
Information from SYSTABLEPERM in a more readable format |
SYSCOLAUTH |
PUBLIC |
Information from SYSCOLPERM in a more readable format |
SYSPROCAUTH |
PUBLIC |
Information from SYSPROCPERM in a more readable format |
In addition to these, there are tables and views containing information about each object in the database.