UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

特定のユーザ,アプリケーションで操作を制限する(PRODUCT_USER_PROFILE)

特定のユーザ,アプリケーションで操作を制限する(PRODUCT_USER_PROFILE)


0.改訂履歴

  • 2002.10.18 新規作成

1.はじめに

 このドキュメントでは,PRODUCT_USER_PROFILEを使って,scottユーザがselect出来ないように設定してみる手順を説明する.

2.現在の状態を確認

  • scottユーザで接続して,empテーブルをselectしてみる.
SQL> connect scott/tiger@testdb 
Connected.
SQL> select count(*) from emp;

  COUNT(*)
----------
        14

SQL> 
  • selectできている.
  • 次に,systemユーザで接続して,PRODUCT_USER_PROFILEテーブルの中身を確認してみる.
SQL> connect system/systempassword@testdb
Connected.
SQL> select * from product_user_profile;

no rows selected

SQL>
  • 何も入っていない事が確認できた.

3.制限データを作成する

  • PRODUCT_USER_PROFILEテーブルにデータを追加する.
SQL> insert into product_user_profile
  2    (
  3      product,userid,attribute,char_value
  4    )
  5    values
  6      (
  7        'SQL*Plus','SCOTT','SELECT','DISABLED' 
  8      )
  9  ;

1 row created.

SQL>
  • 中身を見てみる.
SQL> desc product_user_profile
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PRODUCT                                   NOT NULL VARCHAR2(30)
 USERID                                             VARCHAR2(30)
 ATTRIBUTE                                          VARCHAR2(240)
 SCOPE                                              VARCHAR2(240)
 NUMERIC_VALUE                                      NUMBER(15,2)
 CHAR_VALUE                                         VARCHAR2(240)
 DATE_VALUE                                         DATE
 LONG_VALUE                                         LONG

SQL> col product format a10
SQL> col userid format a10
SQL> col attribute format a10
SQL> col char_value format a10
SQL> select product,userid,attribute,char_value from product_user_profile;

PRODUCT    USERID     ATTRIBUTE  CHAR_VALUE
---------- ---------- ---------- ----------
SQL*Plus   SCOTT      SELECT     DISABLED

SQL> 
  • みて判るとおり,
    • 「SQL*Plusで接続してきたscottユーザは,select処理を実行できない」
  • となっている.

4.制限されたか確認してみる

  • SQL*Plusを使って,scottユーザで接続する.
SQL> connect scott/tiger@testdb
Connected.
SQL>
  • selectを発行してみる.
SQL> select count(*) from emp;
SP2-0544: invalid command: select
SQL>
  • select処理はinvalidだと表示された!
  • 次に,先ほど作成したPRODUCT_USER_PROFILEテーブルのデータを削除して,再度scottユーザで接続してselectする.
SQL> connect system/systempasswordnotoracle@testdb
Connected.
SQL> delete product_user_profile;

1 row deleted.

SQL> connect scott/tiger@testdb
Connected.
SQL> select count(*) from emp;

  COUNT(*)
----------
        14

SQL> 
  • selectできた.

5.接続しているモジュール名を調べる

  • PRODUCT_USER_PROFILEを使って制限する場合,アプリケーション名を知らないとデータを作れない.
  • よって,次のSQL文で現在接続しているモジュール名について確認する事が出来る.
SQL> select module from v$session where module is not null;

MODULE
------------------------------------------------
SQL*Plus

SQL> 


広告スペース
Google