ヘッダーをスキップ
Oracle® Data Provider for .NET開発者ガイド
12c リリース1(12.1)
B72971-07
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

コード・アクセス・セキュリティ

ODP.NETでは、OraclePermissionクラスを使用してコード・アクセス・セキュリティを実装します。これにより、データベースにアクセスするアプリケーション・コードに、アクセスに必要な権限が付与されます。

.NETアセンブリからODP.NETを介してOracle Databaseへのアクセスが試行されると、ODP.NETによってOraclePermissionが要求されます。.NETランタイム・セキュリティ・システムにより、コール・アセンブリと、コール・スタックにあるその他すべてのアセンブリにOraclePermissionが付与されているかどうかが確認されます。コール・スタックのすべてのアセンブリにOraclePermissionが付与されている場合、コール・アセンブリからデータベースへのアクセスが可能になります。コール・スタックのアセンブリのいずれかにOraclePermissionが付与されていない場合、セキュリティ例外がスローされます。

OraclePermissionの構成

DemandOraclePermission構成属性は、ODP.NET APIのOraclePermission要求を有効化および無効化するために使用されます。DemandOraclePermissionの値は、管理対象外ODP.NETのWindowsレジストリで、または管理対象外と管理対象のODP.NETのアプリケーション構成ファイルでそれぞれ指定することができます。

DemandOraclePermission構成属性を構成するには、次のWindowsレジストリ・キーを使用します。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assembly_Version\DemandOraclePermission

Assembly_Versionは、Oracle.DataAccess.dllの完全なアセンブリ・バージョン番号です。DemandOraclePermissionキーの種類はREG_SZです。1(有効)または0(無効)に設定できます。

また、アプリケーションの構成ファイルを使用して、各アプリケーションのOraclePermission要求を有効化することもできます。次の例では、ODP.NET管理対象外ドライバのアプリケーション構成ファイルでDemandOraclePermissionプロパティを有効にします。

<configuration>
  <oracle.dataaccess.client>
    <settings>
      <add name="DemandOraclePermission" value="1"/>
    </settings>
  </oracle.dataaccess.client>
</configuration>

同様に、DemandOraclePermissionを使用すると、管理対象プロバイダを構成するsettingsセクションで、ODP.NET管理対象ドライバを構成できます。詳細は、「settingsセクション」も参照してください。

アセンブリのコード・グループに関連付けられている権限セットにOraclePermissionが追加されていると、アプリケーションまたはアセンブリが正常にデータベースにアクセスできます。システム管理者は、Microsoft .NET構成ツール(Mscorcfg.msc)または手動で該当の権限セットを変更できます。

また、管理者はコード・アクセス・セキュリティ・ポリシー・ツール(Caspol.exe)などの適切な.NET Frameworkツールを使用して、マシン、ユーザーおよびエンタープライズ・レベルでOraclePermissionを含めるようにセキュリティ・ポリシーを変更することもできます。

DemandOraclePermission構成属性を使用してOraclePermission要求が有効化されている場合、OracleConnectionOraclePermissionオブジェクトを使用してセキュリティ要求が作成されます。アプリケーション開発者は、OracleConnectionを使用する前に、これらのコードに十分な権限があることを確認する必要があります。

信頼レベルを高または中にするWebアプリケーションのOraclePermissionの構成

高または中より低い信頼レベルで実行されているWebアプリケーションの場合、アプリケーションでセキュリティ・エラーが発生しないように、適切なweb_TrustLevel.configファイルにOraclePermissionを構成する必要があります。

OraclePermissionは、OracProvCfgツールを使用して構成できます。OraProvCfg.exeによって、指定した.NET frameworkバージョンに関連付けられているweb_hightrust.configおよびweb_mediumtrust.configファイルに適切なエントリが追加されます。次の例では、.NET 2.0 WebアプリケーションでOraclePermissionを構成するために、OraProvCfgツールを使用する方法が示されています。

OraProvCfg.exe /action:config  /product:odp /component:oraclepermission
               /frameworkversion:v2.0.50727
               /providerpath:full_path_of_Oracle.DataAccess.dll

前述のコマンドを実行すると、次のエントリが、ASP.NET権限セットのweb_hightrust.configおよびweb_mediumtrust.configファイルに追加されます。

<IPermission class="Oracle.DataAccess.Client.OraclePermission, Oracle.DataAccess,
Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" version="1"
Unrestricted="true" />

また、必要に応じて、OraProvCfgを使用して、.configファイルからこれらのエントリを削除できます。次に、この例を示します。

OraProvCfg.exe /action:unconfig  /product:odp  /component:oraclepermission
               /frameworkversion:v2.0.50727
               /providerpath:full_path_of_Oracle.DataAccess.dll

部分信頼環境で実行されるWindowsアプリケーションに対するOraclePermissionの構成

部分信頼環境で実行されるWindowsアプリケーションの場合、security.configファイルの適切な権限セットにOraclePermissionエントリを指定する必要があります。security.configファイルは、%windir%\Microsoft.NET\Framework\{version}\CONFIGフォルダにあります。

次の例では、.NET 2.0 Windowsアプリケーション用のOraclePermissionエントリが指定されています。

<IPermission class="Oracle.DataAccess.Client.OraclePermission, Oracle.DataAccess,
 Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" version="1"
 Unrestricted="true" />