ヘッダーをスキップ
Oracle® Database Provider for DRDAユーザーズ・ガイド
12c リリース1 (12.1.0.2) for Linux x86-64
E98592-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

11Oracle Database Provider for DRDAのセキュリティおよび記憶域に関する考慮事項

この章では、Oracle Database Provider for DRDAに関するセキュリティおよび記憶域の問題について説明します。

この章には次のトピックが含まれます:

Oracle Database Provider for DRDAのセキュリティおよび記憶域の概要

Oracle Database Provider for DRDAは、Oracle Databaseのセキュリティおよび認可モデルを使用します。これにより、ユーザー・データへの正しいSQLアクセスが保証されます。

DRDAは、REQUESTERおよびOWNERという2つの認可モデルを指定します。これらはパッケージの属性PKGATHRULとして指定されます。

  • REQUESTERモデルでは、現在ログインしているユーザーが認可を制御します。

    REQUESTERモデルは動的SQLルールとも呼ばれ、実行時に構成されるSQLを実行するために使用されます。これは、Oracle DatabaseがSQLアクセスのために実装するセキュリティ・モデルです。

  • OWNERモデルでは、格納されているUSERID(パッケージ所有者、PKGOWNID)が、文の実行中に異なるUSERIDをインスタンス化します。

    OWNERモデルは静的SQLルールとも呼ばれ、パッケージ内で事前にバインドされているSQLに使用されます。Oracle Databaseは、同等のセキュリティ・モデルを実装していません。

Oracle Databaseでは1つのセキュリティ・モデルのみが実装されるため、格納および動的に作成されたパッケージ内のすべてのSQLは、動的SQLルール・モデルで実行されます。これは、AUTHID DEFINER属性を使用して作成された各PL/SQLオブジェクトのインスタンス化モードをオーバーライドしません。

AUTHID DEFINERの詳細は、Oracle® Database PL/SQL言語リファレンスを参照してください。

Oracle Database Provider for DRDAでの認証および暗号化

DRDAでは、データベースへのアクセス(ACCRDB)の実行前にユーザー認証(ACCSEC(SECMEC), SECCHK)を実行する必要があります。

認証サービス

DRDAには、2種類の認証サービス(専用および多重化用)があります。

  • 専用の場合、ASが1つの専用データベースへのアクセスを提供します。別のデータベースに接続するオプションはありません。後でACCRDBで渡されるrdbnamは、ターゲット・データベース名と一致している必要があります。一致しいていないと、セッションのアクセスが失敗し、RDBAFLRMメッセージが発行されます。

    このモードでは、ACCSECは認証を実行するためにrdbnamインスタンス変数を必要としません。これは、データベースを選択することがないためです。したがって、ASではACCSEC処理時に1つのデータベースとセッション関連付けを行い、要求されたセキュリティ・メカニズム(SECMEC)が使用可能であることを検証できます。SECCHKコマンドが送信されると、初期データベース・セッションが維持され、完全な認証が実行されます。

    多重化サーバーに対応していない古いARではこのモードを使用する必要があります。このモードでARからrdbnamが提供される場合、このrdbnamは接続データベースと突き合わせて検証される必要があります。

  • 多重化モードでは、ASは複数データベースへの同時アクセスを提供します。このモードでは、要求されたセキュリティ・メカニズムを検証するために、ACCSECのrdbnamインスタンス変数が必要です。ASは、セキュリティ検証のためにリクエストされたデータベースに接続します。SECCHKコマンドが送信されると、初期データベース・セッションが維持され、完全な認証が実行されます。

    このモードは、ACCSECの一部としてrdbnamを提供する新しいARでサポートされています。このモードでARがACCSECのrdbnamを提供しない場合、エラーが生成され、RDBAFLRM応答がACCSECに送信されます。

暗号化サービス

Oracle Database Provider for DRDAでは次のセキュリティ・メカニズムがサポートされています。

  • EUSRIDPWD: 暗号化されたユーザーIDとパスワードのメカニズム

  • EUSRIDNWPWD: 暗号化されたユーザーID、パスワードおよび新規パスワードのメカニズム

  • USRIDPWD: ユーザーIDとパスワードのメカニズム

  • USRIDNWPWD: ユーザーID、パスワード、および新規パスワードのメカニズム

  • USRENCPWD: ユーザーIDとパスワードの暗号化メカニズム

セキュリティ・メカニズムがアクセス可能であると検証されたら、実際のセキュリティ認可(SECCHK)に進むことができます。

Oracle Database Provider for DRDAでのデータベース・ロール

Oracle Database Provider for DRDAでは、DRDAAS_ADMIN_ROLEおよびDRDAAS_USER_ROLEの2つのロールを使用します。

DRDAAS_ADMIN_ROLE

DRDAAS_ADMIN_ROLEロールにより、DBMS_DRDAAS_ADMINパッケージへのアクセスと使用が許可されます。これは、Oracle Database Provider for DRDA固有のDBAレベルの権限です。Oracle DatabaseへのリモートDRDAアクセスを管理する管理者には、このロールを付与する必要があります。

DRDAAS_USER_ROLE

DRDAAS_USER_ROLEロールは、Oracle Database Provider for DRDAユーザーに対し次の目的でのDBMS_DRDAASパッケージへのアクセスを許可します。

  • DRDAパッケージのバインド

  • Oracle Database Provider for DRDAパッケージ・リソース表への読取りアクセスの許可

  • パッケージの実行

DRDAAS_USER_ROLEロールの権限が付与されていないOracle Database Provider for DRDAユーザーは、アクセスが許可されているDRDAパッケージを実行できません。

Oracle Database Provider for DRDAでの記憶域

Oracle Database Provider for DRDAユーザーには、SYSIBMという名前の記憶域が割り当てられています。これは、SYSIBM表領域とSYSIBMユーザーによって実装されます。

SYSIBM表領域

管理およびサポート機能のためにアプリケーション・サーバーで提供および使用されるすべての表、ビューおよびパッケージは、表領域SYSIBMに含まれます。Oracle Database Provider for DRDAサポート・パッケージをインストールする前にこの表領域を作成する必要があります。SYSIBM表領域を作成する方法の例については、製品に付属するcatdrdaas.sqlスクリプトを参照してください。付録A「Oracle Database Provider for DRDAの作成およびメンテナンスのスクリプト」catdrdaas.sqlのリストを参照してください。

create tablespace SYSIBM datafile 'sysibm01.dbf' size 70M reuse 
   extent management local segment space management auto online;

SYSIBMユーザー

Oracle Database Provider for DRDAで提供および使用されるすべての表、ビューおよびパッケージは、ユーザー・スキーマSYSIBMに含まれています。Oracle Database Provider for DRDAのパッケージおよび表のインストール時に、ユーザーIDがロック済アカウントとして作成され、その記憶域としてSYSIBM表領域を使用するように設定されます。