プライマリ・コンテンツに移動
SQL*Plus®ユーザーズ・ガイドおよびリファレンス
リリース1 (12.1)
B71396-03
目次へ移動
目次
索引へ移動
索引

前
次

SQL*Plus、SQLおよびPL/SQLコマンドの使用禁止

特定のユーザーに対して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

  • PRINT

  • 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

次に、使用禁止にできるPL/SQLコマンドを示します。

  • 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操作も禁止になります。

  1. 次のコマンドを使用して、SYSTEMとしてログインします。
    SQLPLUS SYSTEM
  2. 次のコマンドを使用して、PUP表に行を挿入します。
    INSERT INTO PRODUCT_USER_PROFILE
    VALUES ('SQL*Plus', 'HR', 'SELECT', NULL, NULL, 'DISABLED', NULL, NULL);
  3. 次のようにHRで接続して、SELECTを実行します。
    CONNECT HR 
    SELECT * FROM EMP_DETAILS_VIEW; 

    このコマンドによって、次のエラー・メッセージが表示されます。

    SP2-0544: Command SELECT disabled in Product User Profile
  4. この行を削除し、ユーザーHRから制限を削除するには、SYSTEMで再接続し、次のように入力します。
    DELETE FROM PRODUCT_USER_PROFILE WHERE USERID = 'HR'; 

例9-1 PUP表の制限の設定

次に、PUP表に、ユーザーHRのSELECT文の使用を制限する行を挿入する例を示します。