特定のユーザーに対してSQLまたはSQL*Plusコマンドを使用禁止にするには、Userid列にユーザーのユーザー名、Attribute列にコマンド名およびChar_Value列にDISABLEDを入力した行を挿入します。Scope、Numeric_ValueおよびDate_Value列にはNULLを入力します。次に例を示します。
PRODUCT USERID ATTRIBUTE SCOPE NUMBERIC CHAR DATE LONG VALUE VALUE VALUE VALUE ------- ------ --------- ----- -------- ------ ----- ----- SQL*Plus HR HOST DISABLED SQL*Plus % INSERT DISABLED SQL*Plus % UPDATE DISABLED SQL*Plus % DELETE DISABLED
コマンドを再度使用可能にするには、制限を含む行を削除します。
使用禁止にできるSQL*Plusコマンド:
ACCEPT
DEFINE
PASSWORD
SHUTDOWN
APPEND
DEL
PAUSE
SPOOL
ARCHIVE LOG
DESCRIBE
START (@、@@)
ATTRIBUTE
DISCONNECT
PROMPT
STARTUP
BREAK
EDIT
RECOVER
STORE
BTITLE
EXECUTE
REMARK
TIMING
CHANGE
EXIT/QUIT
REPFOOTER
TTITLE
CLEAR
GET
REPHEADER
UNDEFINE
COLUMN
HELP (?)
RUN
VARIABLE
COMPUTE
HOST
SAVE
WHENEVER OSERROR
CONNECT
INPUT
SET
WHENEVER SQLERROR
COPY
LIST (;)
SHOW
XQUERY
使用禁止にできるSQLコマンド:
ALTER
ANALYZE
ASSOCIATE
AUDIT
CALL
COMMENT
COMMIT
CREATE
DELETE
DISASSOCIATE
DROP
EXPLAIN
FLASHBACK
GRANT
INSERT
LOCK
MERGE
NOAUDIT
PURGE
RENAME
REVOKE
ROLLBACK
SAVEPOINT
SELECT
SET CONSTRAINTS
SET ROLE
SET TRANSACTION
TRUNCATE
UPDATE
VALIDATE
BEGIN
DECLARE
注意:
HOSTを使用禁止にすると、ご使用のオペレーティング・システムのHOSTの別名(Windows環境では$、UNIX環境では!など)も使用禁止になります。
LISTを使用禁止にすると、;および番号(スクリプト内の行に移動するために入力した番号)も使用禁止になります。
コマンドライン・ヘルプへのアクセスを禁止するには、HELPおよび?を別々に使用禁止にする必要があります。
SQL*PlusのSETコマンドを使用禁止にすると、SQLのSET CONSTRAINTS、SET ROLEおよびSET TRANSACTIONコマンドも使用禁止になります。
SQL*PlusのSTARTを使用禁止にすると、@および@@も使用禁止になります。
BEGINおよびDECLAREコマンドを使用禁止にしても、PL/SQLを実行するSQL*PlusのEXECUTEコマンドは使用可能です。EXECUTEを使用禁止にする場合は、別々に行ってください。
EXIT/QUITを使用禁止にすることはお薦めしません。使用禁止にする場合は、EOF文字(UNIXの場合は[Ctrl]+[D]、Windowsの場合は[Ctrl]+[Z]など)を送信してコマンドライン・セッションを終了してください。または、SQL*Plusの処理を終了してセッションを終了してください。また、使用禁止にすると、WHENEVER OSERRORおよびWHENEVER SQLERRORでのEXIT操作も禁止になります。
例9-1 PUP表の制限の設定
次に、PUP表に、ユーザーHRのSELECT文の使用を制限する行を挿入する例を示します。