アウトプット ウィンドウに「ORA-00942:表またはビューが存在しません」というOracleエラー メッセージが返ってきます。
このメッセージは、Oracleから返されて、DBArtisanの出力ウィンドウに表示されるメッセージです。この場合、表またはビューが実際に存在しないか、DBArtisanが照会しようとしている表やビューの選択に必要な特権でログインしていないため、DBArtisanからの照会がOracleによって拒否されています。DBArtisanはSYS.DBA_xxxシステム ビュー、動的パフォーマンス表(V$xxx)、その他のシステム表やビューを照会します。DBArtisanを使用するユーザーは、DBArtisanが照会するすべての表に対するSELECT権限を持っていなければなりません。
SELECT権限は、仮想表のユーザーには明示的に付与しないので、対応する仮想ビューでSELECT権限を実際に付与します。これによって、Oracleシステムは仮想表上で許可を付与するようになります。Oracle 8の場合、必要な許可を持つSELECT CATLOGロールが使用できます。
例:
DBArtisanがV$PARAMETERという仮想表を照会します。ユーザーが、この表に関するSELECT権限を持っていない場合、DBArtisanはエラーを返します。しかし、この表にSELECT権限を付与することはできません。そのかわり、対応するビューに対してSELECT権限を付与します。そのための構文を次に示します。
GRANT SELECT on V_$PARAMETER to /*ユーザー名*/
表の名前はV$PARAMETER、ビューの名前はV_$PARAMETERになっていることに注意してください。
DBArtisanが照会する仮想表の一覧
V$PARAMETER
V$SESSION
V$PROCESS
V$SQLTEXT
V$LOCK
V$DATABASE
V$LOG
V$SYSSTAT
SYS.V_$LOG_HISTORY
SYS.V_$STATNAME
SYS.V_$SESSTAT
SYS.V_$ROLLSTAT
SYS.V_$ROLLNAME
システム ビューの一覧
SYS.DBA_PROFILES
SYS.DBA_ROLES
SYS.DBA_FREE_SPACE
SYS.DBA_DATA_FILES
SYS.DBA_USERS
SYS.DBA_CLUSTERS
SYS.DBA_DB_LINKS
SYS.DBA-OBJECTS
SYS.DBA_INDEXES
SYS.DBA_CONSTRAINTS
SYS.DBA_ROLE_PRIVS
SYS.DBA_TAB_PRIVS
SYS.DBA_COL_PRIVS
SYS.DBA_SYS_PRIVS
SYS.DBA_TABLES
SYS.DBA_TABLESPACES
SYS.DBA_EXTENTS
SYS.DBA_ SEGMENTS
SYS.DBA_IND_COLUMNS
SYS.DBA_TAB_COLUMNS
SYS.DBA_COL_COMMENTS
SYS.DBA_SOURCE
SYS.DBA_ERRORS
SYS.DBA_OBJECT_SIZE
SYS.DBA_DEPENDENCIES
SYS.DBA_SYNONYMS
SYS.DBA_SEQUENCES
SYS.DBA_SNAPSHOTS
SYS.DBA_SNAPSHOT_LOGS
SYS.DBA_TRIGGERS
SYS.DBA_TRIGGER_COLS
SYS.DBA_TAB_COMMENTS
SYS.DBA_CONS_COLUMNS
SYS.DBA_VIEWS
SYS.DBA_DB_LINKS
SYS.DBA_ROLLBACK_SEGS
その他のシステム表とビュー
SYS.FILEXT$
SYS.FET$
SYS.TS$
SYS.RESOURCE_COST
SYS.PRODUCT_COMPONENT_VERSION
SYS.LINK$
SYS.USER$