Examining The Database [ Getting Started with HP IMAGE/SQL ] MPE/iX 5.0 Documentation
Getting Started with HP IMAGE/SQL
Examining The Database
In this section, you will examine the objects that were created within
MusicDBE--tables, views, and authority structures. Information about all
these objects is in the system catalog, which is automatically created by
IMAGE/SQL when the DBEnvironment is created and configured.
Run ISQL, then connect to MusicDBE using this CONNECT command:
isql=>CONNECT TO 'musicdbe'; Return
Now examine the system catalog by creating queries on the system views.
Use the following query exactly as shown to look at all the tables and
views created by the attach function. Type the query exactly as shown
because the owner name is case-sensitive.
isql=>SELECT NAME, OWNER, Return
>DBEFILESET, TYPE Return
>FROM SYSTEM.TABLE Return
>WHERE OWNER = 'MUSIC'; Return
The result table is shown below.
____________________________________________________________________________________
| |
| |
| select name, owner, dbefileset, type from system.table where owner = 'MUSIC |
| --------------------+--------------------+--------------------+------ |
| NAME |OWNER |DBEFILESET |TYPE |
| --------------------+--------------------+--------------------+------ |
| ALBUMS |MUSIC |SYSTEM | 0 |
| COMPOSERS |MUSIC |SYSTEM | 0 |
| LOG |MUSIC |SYSTEM | 0 |
| SELECTIONS |MUSIC |SYSTEM | 0 |
| SELECTIONS_A |MUSIC |SYSTEM | 0 |
| SELECTIONS_A_V0 |MUSIC |SYSTEM | 1 |
| --------------------------------------------------------------------------- |
| Number of rows selected is 6 |
| U[p], d[own], l[eft], r[ight], t[op], b[ottom], pr[int] <n>, or e[nd] >e |
| |
____________________________________________________________________________________
Figure 6-2. Information on Tables and Views
Each table is listed in the NAME column. The OWNER column specifies the
database to which the table belongs. If you are not the table owner
(that is, if it is part of the TurboIMAGE/XL database), you must prefix
the table name with its owner name whenever you refer to it. In this
example, a reference to the ALBUMS table would be MUSIC.ALBUMS.
The DBEFILESET column contains the name of the DBEFileSet an entry has
been associated with. IMAGE/SQL tables are always associated with the
SYSTEM DBEFileSet.
The TYPE column indicates whether the entry is a table or a view.
Entries with type 0 are tables and entries with type 1 are views.
Examining Table Descriptions
You can see individual table descriptions by using the INFO command,
which returns the column definition of a table. Use the following
command for the Albums table:
isql=>INFO music.albums; Return
The output from this ISQL command is shown below:
_____________________________________________________________________________________
| |
| |
| Column Name Data Type (length) Nulls Allowed Language |
| ---------------------------------------------------------------------------- |
| ALBUMCODE Integer NO |
| ALBUMTITLE Char ( 40) NO NATIVE-3000 |
| MEDIUM Char ( 2) NO NATIVE-3000 |
| ALBUMCOST Decimal ( 7, 0) NO |
| RECORDINGCO Char ( 10) NO NATIVE-3000 |
| DATERECORDED Char ( 16) NO NATIVE-3000 |
| MFGCODE Char ( 40) NO NATIVE-3000 |
| COMMENT Char ( 80) NO NATIVE-3000 |
| |
_____________________________________________________________________________________
Figure 6-3. Column Definitions of a Table
The Column Name column lists the names of all the columns in the table.
The Data Type column shows the SQL data type for each column and its size
(in parentheses).
The third column, Nulls Allowed, indicates whether or not null values are
permitted in this column. IMAGE/SQL tables do not allow null values, so
this column will always contain NO.
The Language column indicates which language is applicable for the column
if it is a character type. This corresponds with the Language value in
the MUSIC root file.
Examining the Authority Structure
An authority structure consists of many elements. Some of these elements
are shown below:
* Group definitions
* Table authorization for select, insert, update, and delete
operations on tables
* Column authorization for permission to update specific columns
Use the following query to examine each authorization group in MusicDBE
and their members:
isql=>SELECT * FROM SYSTEM.GROUP; Return
The query result is shown below:
____________________________________________________________________________________
| |
| |
| select * from system.group; |
| --------------------+--------------------+--------------------+----------- |
| USERID |GROUPID |OWNER |NMEMBERS |
| --------------------+--------------------+--------------------+----------- |
| MUSIC_0 |MUSIC_0 |MGR@ACCOUNT | 0 |
| MUSIC_64 |MUSIC_64 |MGR@ACCOUNT | 0 |
| |
| |
| --------------------------------------------------------------------------- |
| Number of rows selected is 2 |
| U[p], d[own], l[eft], r[ight], t[op], b[ottom], pr[int] <n>, or e[nd] > e |
| |
____________________________________________________________________________________
Figure 6-4. Groups in the System Catalog
Figure 6-4 shows two UserID values, MUSIC_0 and MUSIC_64, that
correspond with TurboIMAGE/XL password levels of 0 and 64. Level 0 is
assigned to items and sets that do not have levels assigned to them.
Users accessing the database without a password are given this level.
Level 64 is the creator level. Notice that the OWNER for both is
MGR@ACCOUNT, the database creator.
Passwords in TurboIMAGE/XL are case-sensitive. Also, you need to allow
these users mode 1 access to TurboIMAGE/XL to permit database updates.
The information above is set up by the ATTACH command. There are,
however, three levels of security defined in the TurboIMAGE/XL database:
MGR, DIR, and ANNCR. To use these levels, you must add additional users
with the IMAGE/SQL utility as shown below:
:RUN IMAGESQL.PUB.SYS Return
HP36385B X.F0.13 IMAGE/SQL Utility SAT, JUN 5, 1993, 6:23 PM
(C) COPYRIGHT HEWLETT-PACKARD COMPANY 1993
>>SET TURBODB music Return
>>SET SQLDBE musicdbe Return
>>UPDATE USER MGR@ACCOUNT TO PASS = MGR, MODE=1 Return
Warning: command containing a password has been logged (ATCWARN 32069).
ALLBASE/SQL group MUSIC_10 created.
View MUSIC.ALBUMS_V10 created.
View MUSIC.COMPOSERS_V10 created.
View MUSIC.SELECTIONS_A_V10 created.
View MUSIC.SELECTIONS_V10 created.
View MUSIC.LOG_V10 created.
>>ADD USER DIR@ACCOUNT WITH PASS = DIR, MODE=1 Return
Warning: command containing a password has been logged (ATCWARN 32069).
ALLBASE/SQL group MUSIC_20 created.
View MUSIC.ALBUMS_V20 created.
View MUSIC.COMPOSERS_V20 created.
View MUSIC.SELECTIONS_A_V20 created.
View MUSIC.SELECTIONS_V20 created.
View MUSIC.LOG_V20 created.
>>ADD USER ANNCR@ACCOUNT WITH PASS = ANNCR, MODE=1 Return
Warning: command containing a password has been logged (ATCWARN 32069).
ALLBASE/SQL group MUSIC_30 created.
View MUSIC.ALBUMS_V30 created.
View MUSIC.COMPOSERS_V30 created.
View MUSIC.SELECTIONS_A_V30 created.
View MUSIC.SELECTIONS_V30 created.
View MUSIC.LOG_V30 created.
You can view these changes and additions with the DISPLAY USERS command:
>>DISPLAY USERS Return
__________________________________________________________________
| |
| |
| ATTACHED BASES : MUSIC.PUB.ACCOUNT |
| DBEnvironment : MUSICDBE.PUB.ACCOUNT |
| |
| USER LOGON DBOPEN MODE USER PASSWORD USER CLASS |
| ---------- ----------- ------------- ---------- |
| |
| MGR@ACCOUNT 1 MGR 10 |
| DIR@ACCOUNT 1 DIR 20 |
| ANNCR@ACCOUNT 1 ANNCR 30 |
| |
__________________________________________________________________
Figure 6-5. Changes to Levels of Security
Re-invoke ISQL and enter the following command to look at the UserID
information:
isql=>SELECT * FROM system.group; Return
____________________________________________________________________________________
| |
| |
| select * from system.group; |
| --------------------+--------------------+--------------------+----------- |
| USERID |GROUPID |OWNER |NMEMBERS |
| --------------------+--------------------+--------------------+----------- |
| MUSIC_0 |MUSIC_0 |MGR@ACCOUNT | 0 |
| MUSIC_64 |MUSIC_64 |MGR@ACCOUNT | 0 |
| MUSIC_10 |MUSIC_10 |MGR@ACCOUNT | 0 |
| MUSIC_20 |MUSIC_20 |MGR@ACCOUNT | 1 |
| DIR@ACCOUNT |MUSIC_20 |MGR@ACCOUNT | 0 |
| MUSIC_30 |MUSIC_30 |MGR@ACCOUNT | 1 |
| ANNCR@ACCOUNT |MUSIC_30 |MGR@ACCOUNT | 0 |
| |
| |
| |
| |
| |
| --------------------------------------------------------------------------- |
| Number of rows selected is 7 |
| |
____________________________________________________________________________________
Figure 6-6. UserID Information
New UserID values now exist for DIR and ANNCR. However, no UserID exists
for MGR because MGR is the OWNER of these GroupIDs and UserIDs. Now that
all these UserIDs are established, you can access the database using any
of these MPE user logins.
MPE/iX 5.0 Documentation