FrontPage > PL/SQL Webアプリケーションの覚書

埋込みPL/SQLゲートウェイ

  • XML DB HTTP Listenerで稼働するPL/SQLゲートウェイの埋込みバージョンを使用する。
  • Oracle HTTP Serverは不要。
  • 埋込みPL/SQLゲートウェイの構成はPL/SQL Web ToolkitのDBMS_EPGパッケージを使用して行う。

1. Oracel XML DB HTTP リスナー

  • HTTPポートの確認
    SQL*Plusにログイン
    SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
    構成されていない場合は、0(またはNULL)が返る。

  • HTTPポートの設定

    例)ポート8080を設定
    SQL> conn sys/パスワード as sysdba
    接続されました。
    SQL> EXEC  DBMS_XDB.SETHTTPPORT(8080);


2. Oracel XML DB FTP リスナー

  • イメージファイルなどを XML DB内の仮想的なディレクトリに配置するには
    FTPを使用する。使用するftpツールによっては接続できない場合がある。(ALFTPはOK)
    接続するユーザは権限のあるDBユーザを指定する。(とりあえずSYSTEMとか)
  • FTPポートの確認
    SQL> SELECT DBMS_XDB.GETFTPPORT FROM DUAL;
    構成されていない場合は、0(またはNULL)が返る。

  • FTPポートの設定

    例)ポート2100を設定
    SQL> EXEC DBMS_XDB.SETFTPPORT(2100);

3. リスナーの確認

  • shellより以下を実行。
    $ lsnrctl status
  • 以下の内容が表示されていればOK
     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=b85md3h)(PORT=8080))(Presentation=HTTP)(Session=RAW))
     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=b85md3h)(PORT=2100))(Presentation=FTP)(Session=RAW))

4. DAD(Data Access Descriptor)の作成

  • XDBADMINのロールのあるユーザーを確認
    SQL> SELECT *
      2  FROM DBA_ROLE_PRIVS
      3  WHERE GRANTED_ROLE = 'XDBADMIN';
  • XDBADMINロールのユーザで接続しDADを作成する。

    例)DAD名がMyDADでURLパスが/plsql/であるDADを作成する。
    SQL> conn sys/パスワード as sysdba
    接続されました。
    SQL> EXEC DBMS_EPG.CREATE_DAD('MyDAD', '/plsql/*');

  • 「http://ホスト名:ポート/plsql/プロシジャ名」でアクセスできるようになる。
    プロシジャに対して実行権のあるDBユーザの認証を求められる。

5. 静的認証の構成

  • 静的認証を構成することで、プロシジャは指定したユーザで実行される。
    実行時に認証を求められなくなる。

  • ユーザANONYMOUSがロックされている場合はロックを解除する。
    • ロックの確認
      SQL> select account_status from dba_users where username='ANONYMOUS';
    • ロック解除
      SQL> alter user ANONYMOUS account unlock;

  • 認証に使用するユーザをDAD属性database-usernameに指定する。

    例) ユーザSCOTTの場合
    SQL> EXEC DBMS_EPG.SET_DAD_ATTRIBUTE('MyDAD', 'database-username', 'SCOTT');

  • DBMS_EPGの実行件をユーザに与える。

    例)
    SQL> GRANT EXECUTE ON DBMS_EPG TO SCOTT;

  • ユーザのDB権限をDADに割り当てる。

    例)
    SQL> CONNECT SCOTT/パスワード
    接続されました。
    SQL> EXEC DBMS_EPG.AUTHORIZE_DAD('MyDAD');






トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-09-08 (火) 20:30:00 (828d)