Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Database Security 詳細解説

Oracle Database Security 詳細解説

Oracle AI Database 26aiをベースに、認証、暗号化、アクセス制御、監査・監視、リスク・アセスメント、AI連携などのセキュリティ機能を網羅的に解説。各機能の仕組みや利用例、対応エディション・ライセンスを整理し、セキュリティ対策の情報収集や導入検討に

Avatar for oracle4engineer

oracle4engineer PRO

October 29, 2026

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. The following is intended to outline our general product direction.

    It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 2 Copyright © 2026, Oracle and/or its affiliates
  2. AI時代のデータベース・セキュリティ Oracle Database Security 従来のアプリケーションやツールに加え、AIエージェントによる高度かつ多様なデータベースアクセスが急速に拡大 境界防御だけでなく、データベース自体に認証・アクセス制御・暗号化・監査を実装する対策が重要 Oracle Database Securityは、データベースを起点とした多層防御により、AI時代のデータ保護を実現 ユーザー

    DevOps AI Agent 通信の暗号化 認証 Database Vault トークン・ベースの外部認証 特権ユーザーの無制限なアクセスを 防止し、職務分掌を実現 TLS 1.3 + PQC (ポスト量子暗号) 将来の量子コンピュー ターによる暗号解読 のリスク対策 Application Users 3 アクセス・コントロール Copyright © 2026, Oracle and/or its affiliates (Microsoft Entra ID, OCI IAM) Deep Data Security 監査・監視 統合監査 データベースのアクセスログを 記録して表に集約 Database Security Central エンドユーザーの属性に基づいた 行・列・セルレベルのアクセス制限 ログ分析から脆弱性の検出まで 360ビューでデータベースを監視 Virtual Private Database 行・列レベルのアクセス制御 格納データの暗号化 SQL Firewall SQLレベルのアクセス制御 Transparent Data Encryption Data Safe クラウドベースのデータベース セキュリティ強化サービス
  3. ユーザー・アカウント データベース・ユーザーとエンドユーザーの違い データベース・ユーザー • 自分のスキーマ・オブジェクトを所有する一般的なユーザー • システム権限やオブジェクト権限を直接またはロールを通じて付与 • パスワード認証に加え、MFA、IdP連携によるトークン認証に対応 エンドユーザー

    (26ai RU 23.26.2~) • 自分のスキーマ・オブジェクトを所有しないアプリケーション向けのユーザー • 表やビューへのアクセスは、データ権限を直接またはデータロールを通じて付与 • Deep Data Securityのアクセス制御の対象 • 外部エンドユーザーとローカル・エンドユーザーの2種類 • ローカル・エンドユーザーは、DB内で作成・管理し、パスワードで認証。MFAにも対応 • 外部エンドユーザーは、 IdP(認証プロバイダー)で作成・管理し、トークン認証 5 Copyright © 2026, Oracle and/or its affiliates
  4. 19c~ 全エディション 多要素認証(MFA) パスワード漏えいによる不正ログインのリスクを低減 データベース・パスワード認証に加え、モバイル・アプリへのプッシュ通知でログインの承認を要求 SYS、SYSTEMを含むDBパスワード認証ユーザーを対象に設定可能 • CDB/PDBオープン時:OMAまたはCisco Duoによるプッシュ通知MFAを利用可能 •

    クローズ時:プッシュ通知MFAは利用不可。管理権限接続では、別途設定したパスワード+クライアント証明書方式を利用 • OS認証など、DBパスワードを使わない接続は対象外 サポートしているデータベースのバージョン及びモバイル・アプリ • Oracle Database 19c (19.28~)、 26ai~(RU 23.9~) すべてのエディションで使用可能 • Oracle Mobile Authenticator(OMA), Cisco Duo モバイル アプリ CREATE USER ユーザー名 IDENTIFIED BY パスワード AND FACTOR 'OMA_PUSH’ AS 'メールアドレス'; 4 通知 3 1 Login Successful 6 Copyright © 2026, Oracle and/or its affiliates 2 Login Request 6 Request MFA MFA Approved 5 OCI IAM Cisco Duo
  5. 19c~ 全エディション トークン・ベースの外部認証 トークンを用いたOracle Databaseの認証と認可 データベース・パスワードを使用せず、 IdP(認証プロバイダー)が発行するトークンで接続 • ユーザーやグループはIdP側で作成・管理し、DB側のスキーマ/グローバル・ロールにマッピング •

    Deep Data Securityでは、IdPのロール/グループをデータロールにマッピング可能 • 対話型のユーザー認証には、IdP側のMFAを利用可能 • トークン接続にはTLSによる通信暗号化が必要 IdP 対応するIdP: Microsoft Entra ID、OCI IAM • 他の認証基盤は、これらのIdPへのフェデレーションを介して連携可能 ブラウザ 認証 公開署名鍵を 取得・更新 トークン 要求 対象データベース ※すべてのエディションで使用可能 • オンプレミス Oracle Database 19c (19.18~) :Entra IDのみ • オンプレミス Oracle AI Database 26ai:Entra ID/OCI IAM※ • Autonomous AI Database(Serverless/Dedicated) • Oracle Base Database Service • Oracle Exadata Database Service on Dedicated Infrastructure ※オンプレミス26aiでOCI IAMのトークンを利用する場合は、Deep Data SecurityのOAuth方式 OCIのDBサービスでは、OCI IAMのDBトークン(db-token)による認証にも対応 7 Copyright © 2026, Oracle and/or its affiliates 署名の検証 アクセス データベース・ユーザー 外部エンドユーザー SQL Tools Web Applications SQL /@サービス名 トークンで データベース接続
  6. トークン・ベースの外部認証 IAMユーザー・グループとのマッピング方式 1 排他的スキーマ・マッピング 2 共有スキーマ・マッピング 3 データロール・マッピング IAMグループ IAMユーザー

    DBユーザー IAMグループ DBユーザー IAMユーザーとDBユーザーを1:1でマッピング DBユーザーに直接またはDBロールで権限を付与 IAMユーザーと同数のDBユーザーが必要 CREATE USER peter IDENTIFIED GLOBALLY AS '[email protected]' DBロール IAMグループとDBユーザーをマッピング グループ参加のすべてのIAMユーザーは、同一の DBユーザーとしてログイン IAMグループとDBロールをマッピングして、権限を 一括管理 CREATE USER shareuser IDENTIFIED GLOBALLY AS 'AZURE_ROLE=employee' データ・ロール Deep Data Securityのマッピング方式 IAMグループとデータ・ロールをマッピング マッピングするDBユーザーは必要ない マッピングされたデータロールのデータ権限によって 表/ビューへのアクセス権が制御される CREATE DATA ROLE employee_role MAPPED TO 'AZURE_ROLE=employee' CREATE ROLE manager_role IDENTIFIED GLOBALLY AS 'AZURE_ROLE=manager' データベースユーザー 8 Copyright © 2026, Oracle and/or its affiliates データ権限 (行・列の制御) 外部エンドユーザー
  7. ユーザー・アカウント 作成例 データベース・ユーザー エンドユーザー パスワード認証 ローカル・エンドユーザー -- ユーザー作成 -- ローカル・エンドユーザー作成

    CREATE USER <username> IDENTIFIED BY <password>; CREATE END USER <username> IDENTIFIED BY <password>; -- ユーザー作成 + MFA -- ローカル・エンドユーザー作成 + MFA CREATE USER <username> IDENTIFIED BY <password> AND FACTOR 'OMA_PUSH' AS '[email protected]'; CREATE END USER <username> IDENTIFIED BY <password> AND FACTOR 'OMA_PUSH' AS '[email protected]'; -- 接続 -- 接続 CONNECT <username>/<password>@<service_name> CONNECT <username>/<password>@<service_name> トークン認証 -- IAMのユーザー/ロールとマッピング -- IAMのロールとデータ・ロールをマッピング CREATE USER <username> IDENTIFIED GLOBALLY AS 'AZURE_USER='[email protected]'; CREATE DATA ROLE データ・ロール名 MAPPED TO 'AZURE_ROLE= Entra IDアプリケーション・ロール名'; CREATE ROLE <rolename> IDENTIFIED GLOBALLY AS 'AZURE_ROLE= Entra IDアプリケーション・ロール名'; -- 接続 (IdPで認証後トークン取得) -- 接続 (IdPで認証後トークン取得) CONNECT @<service_name> 9 外部エンドユーザー Copyright © 2026, Oracle and/or its affiliates CONNECT @<service_name>
  8. データベース認証情報のハードコード対策 ユーザー・パスワードをアプリケーションのコードから分離 項目 セキュアな外部パスワード・ストア OCI シークレット・サービス トークン認証 (実行環境のIDを利用) 仕組み Oracle

    WalletにDBユーザー名・パスワードを 登録し、接続時に利用 OCI シークレットにDBユーザー名やパスワードを 保管し、アプリがDB接続時にAPIで取得 実行環境のIDを使い、OCI IAMや Entra IDからDB接続用のトークンを取得 DB認証 方式 パスワード認証 (Walletから認証情報を取得) パスワード認証 (取得した認証情報を使用) トークン認証 (固定のDBパスワードは不要) 設定例 ① Wallet作成・認証情報を登録 ② sqlnet.oraにWalletのパスを設定 ③ アプリの接続設定を変更 ① シークレットに認証情報を登録 ② 取得用のIAM権限を付与 ③ インスタンス・プリンシパルでIAM認証し、 APIでシークレットから認証情報を取得して接続 ① 実行環境のIDと接続権限を設定 ② DBと認証基盤を連携 ③ トークンを取得してDB接続 (OCIのインスタン ス・プリンシパルやEntraID のマネージドID) 例:sqlplus ユーザー/パスワード@サービス名 例:sqlplus /@サービス名 例:sqlplus /@サービス名 メリット 対応クライアントでは改修が小さい 外部サービスのアクセスは不要 認証情報をOCI シークレットに集中管理 パスワードの定期的な変更管理にも対応 許可した実行環境のみトークンを取得 固定パスワードの保管・配布・更新が不要 デメリット 各環境へのWallet配布・更新が必要 定期的なパスワード変更が困難 OCIへとの通信設定、アプリにAPIによる情報 取得のためのコード実装が必要 IAMとDB間の通信設定、アプリにトークン認証 へのコード実装が必要 残リスク 自動ログインWalletの盗難や流出による 不正アクセス ホストやアプリの侵害、API取得後のパスワード 管理の不備による不正アクセス ホストやアプリの侵害、トークンの漏洩による 不正アクセス 10 Copyright © 2026, Oracle and/or its affiliates
  9. データベース暗号化の目的 機密情報が漏洩するリスクを低減する • マルウェア感染やユーザーの不正行為により、DBサーバーのデータファイルが物理的にコピーされ、外部に持ち出される • 不正アクセスやユーザーの権限悪用により、機密データを含む表がSQLで論理的に読み出され、外部に持ち出される 物理的なデータの漏洩には暗号化 論理的なデータの不正アクセスにはアクセス制御 $> strings

    -a financials.dbf | grep “¥-[0-9]¥{4¥}¥-” 流出してしまったファイル はバイナリエディタ等で データを直接参照される データベース上の物理ファイル • • • • 12 Copyright © 2026, Oracle and/or its affiliates データ・ファイル Redo ログファイル バックアップファイル エクスポートファイル・・・ 5555-5555-5555-4444 5105-1051-0510-5100
  10. 11g ~ Enterprise Edition ASO Option Transparent Data Encryption (TDE)

    データベースの透過的暗号化 Oracle Databaseのデータファイルやバックアップファイルの物理的な盗難リスクに対して安全にデータを保護 暗号化・復号をデータベース側で透過的に処理するため、既存アプリケーション(SQL)の改修は不要 サポートする暗号化アルゴリズム: AES(128/192/256bit) およびARIA Intel AES-NIなどのハードウェア暗号化アクセラレーションに対応した高速な暗号化処理 データベースをオンラインに保ったまま暗号化への移行が可能 Oracle Database Cloudサービスではデフォルト機能として提供 暗号化された データ・ファイル Clear Data 通信の暗号化 (TLS or Native Encryption) 表領域 HCM 表領域 TABLESPACE Applications SELECT name,cardnumber FROM credit; 13 Copyright © 2026, Oracle and/or its affiliates 暗号鍵管理 Disks Backups DF11233 U*1 $5Ha1qui %H1 HSKQ112 A14 FASqw34 £$1 DF@£!1ah HH! DA45S& DD1 Exports Off-Site Facilities
  11. Transparent Data Encryption (TDE) 表領域暗号化 SELECT INSERT UPDATE・・・ 表領域単位での暗号化 表領域内の表や索引などのオブジェクトはすべて暗号化対象

    • BFILEや外部表が参照する表領域外のファイルは対象外 サーバープロセス REDOログ、UNDO表領域、一時表領域、アーカイブログも暗号化される データブロックに対するI/Oで暗号化・復号 SGA SGAのバッファキャッシュ上は暗号化されない 暗号化によるデータサイズの増加なし Disk I/Oで 暗号化/復号 索引の範囲検索も利用可能 マスター暗号鍵は、ファイル形式のキーストアまたは外部鍵管理に格納 表領域暗号化 REDOログ UNDO表領域 既存表領域を暗号化する一括変換のサポート キャッシュヒットが多い処理では、暗号化・復号に伴う I/O時の負荷を抑えられる マスター 暗号鍵 14 Oracle Keystore Copyright © 2026, Oracle and/or its affiliates 表領域暗号鍵
  12. Transparent Data Encryption (TDE) マスター暗号鍵のアーキテクチャ マスター暗号鍵は、CDBルートと各PDBにそれぞれで設定可能 マスター暗号鍵のデフォルト保管先は、PKCS#12互換のOracle Keystoreのファイルに格納される - OCI

    VaultやOracle Key Vaultなどの外部鍵管理サービスや製品を使用することも可能 マスター暗号鍵は、実際にデータを暗号化する表領域暗号鍵を暗号化する Oracle Keystoreをオープンするとマスター暗号鍵が利用可能になる マスター暗号鍵をローテーションすると、既存の表領域暗号鍵は新しいマスター暗号鍵で再暗号化される 表領域暗号鍵 Oracle Keystore OCI Vault Oracle Key Vault 15 Copyright © 2026, Oracle and/or its affiliates マスター暗号鍵 表領域暗号鍵 表領域暗号鍵 表領域 表領域 各表領域暗号鍵を 暗号化/復号 表領域
  13. Transparent Data Encryption (TDE) アプリケーション暗号化・TDE・ストレージ暗号化との違い ユーザー Web・APサーバー DBサーバー ディスク DBMS

    OS 暗号化データの 影響範囲 アプリケーション暗号化 TDE (Transparent Data Encryption) ストレージ暗号化 アプリケーション側で暗号化を行う DB側でデータファイルを透過的に暗号化 〇 保存前に暗号化されるため、通信中も安全 〇 既存アプリケーションの変更不要 データが保存されるストレージ自体を 暗号化 × 使用する鍵がアプリケーションごとに増え、 鍵の交換など管理が複雑に 〇 鍵管理を一元化で行うことができる 〇 物理的なディスク盗難に有効 〇 キャッシュヒットする場合は暗号化処理が 発生しない × OSからはデータが閲覧できてしまう × DBとのやり取りに暗号化処理が必ず 発生するため、パフォーマンス影響が大きい × あいまい検索ができない 16 Copyright © 2026, Oracle and/or its affiliates × DBサーバーより外部に出るデータは別途 保護する必要がある △ 鍵はチップやドライブ内に格納
  14. Transparent Data Encryption (TDE) マスター暗号鍵の作成 (26ai) 必要となる初期化パラメータ • WALLET_ROOT:キーストアを配置するルートディレクトリ •

    TDE_CONFIGURATION:使用するキーストアの種類を指定 (FILE, OKV) ※OKVはOracle Key Vault 1 保管先を指定 -- CDBにSYSでログイン ALTER SYSTEM SET WALLET_ROOT = '/u01/app/oracle/wallet' SCOPE=SPFILE; -- データベースを再起動 2 キーストアを作成・オープン ALTER SYSTEM SET TDE_CONFIGURATION = 'KEYSTORE_CONFIGURATION=FILE' SCOPE=BOTH; ADMINISTER KEY MANAGEMENT CREATE KEYSTORE IDENTIFIED BY "<wallet_password>"; ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "<wallet_password>"; 17 Copyright © 2026, Oracle and/or its affiliates 3 CDBルートのマスター暗号鍵を作成 ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "<wallet_password>" WITH BACKUP; ※PDBに暗号化表領域を作る場合は、対象PDBでもマスター暗号鍵を設定 キーストア(ewallet.p12)は、下記のディレクトリに作成される WALLET_ROOT/tde/ewallet.p12 ※19c・23aiでは、sqlnet.oraのENCRYPTION_WALLET_LOCATIONによる TDEキーストアの指定も可能。26aiではこの設定はサポート対象外となるため WALLET_ROOTとTDE_CONFIGURATIONを使用する
  15. Transparent Data Encryption (TDE) 暗号化表領域の作成 共通キーストアの場合は、対象PDBに固有のマスター暗号鍵を作成する そのPDBで暗号化表領域を作成し、データ・ディクショナリで暗号化を確認 4 対象PDBのマスター暗号鍵を作成 --

    PDBにSYSKMまたはSYSDBA権限で接続 ADMINISTER KEY MANAGEMENT SET KEY FORCE KEYSTORE IDENTIFIED BY "<wallet_password>" WITH BACKUP; 6 暗号化を確認 SELECT tablespace_name, encrypted FROM dba_tablespaces WHERE tablespace_name = 'SECURE_TS'; TABLESPACE_NAME ENCRYPTED ------------------------------ --------5 暗号化表領域を作成 -- PDBに接続(CREATE TABLESPACE権限) CREATE TABLESPACE SECURE_TS DATAFILE '/u02/oradata/secure01.dbf' SIZE 1G ENCRYPTION USING 'AES256' ENCRYPT; 18 Copyright © 2026, Oracle and/or its affiliates SECURE_TS YES
  16. Transparent Data Encryption (TDE) 既存表領域の暗号化変換 既存の表領域をSQLで暗号化・復号 SYSTEM、SYSAUX、UNDOなどの既存表領域も変換可能 ALTER TABLESPACE 表領域名

    ENCRYPTION { OFFLINE | ONLINE } USING 'AES256' ENCRYPT; TEMP表領域は新規作成して切り替える Online Encryption Conversion • 表領域をオンラインのまま暗号化・復号・キー更新が可能 • 変換中もデータへのアクセスを継続できる • 新規データファイルを作成する方式なので一時的に 表領域と同サイズのストレージが必要 オンライン暗号化変換 Offline Encryption Conversion • 表領域をオフラインにして暗号化するため、変換中はアクセスできない • 既存のデータファイルを直接更新し、変換用の追加ストレージは不要 • キー更新は不可。変換前に表領域のバックアップを推奨 オフライン暗号化変換 19 Copyright © 2026, Oracle and/or its affiliates
  17. 全エディション ポスト量子暗号 (PQC: Post-Quantum Cryptography) 量子コンピュータに備える暗号対策 将来の量子コンピュータによる解読を狙うハーベスト攻撃には、以下の対策が有効 共通鍵暗号方式: AES-256を採用し、将来の量子攻撃に備えて鍵長を確保する 公開鍵暗号方式:

    TLS 1.3の鍵交換で従来のECDHE (楕円曲線暗号による鍵交換)とML-KEM(ポスト量子暗号)を 併用したハイブリッド構成で量子攻撃への耐性を高める Oracle Databaseは23aiからTLS 1.3に対応し、TDEのデフォルトをAES-256に変更 既存のAES-128暗号化表領域は、SQLのREKEYでAES-256に変更可能 26aiでは、ポスト量子暗号として、鍵交換用のML-KEMとデジタル署名用のML-DSAに対応 TLS 1.3:通信データを暗号化 (鍵交換にECDHEとML-KEMを併用) ハーベスト AES-256で暗号化されたデータのコピー Backups 解読(今ではない未来) Exports 将来の解読リスクを低減 20 Copyright © 2026, Oracle and/or its affiliates Disk AES-256で暗号化された 表領域やバックアップファイル
  18. 8i~ Enterprise Edition Virtual Private Database 行・列レベルのアクセス制御 データベース・ユーザーのセッション情報に応じてWHERE句を透過的に追加 • SYS_CONTEXTでユーザー名、IPアドレス、クライアント・プログラム名などのセッション情報を条件に使用

    • 標準のセッション情報にない独自属性は、クライアント識別子やアプリケーション・コンテキストにユーザー自身で明示的に 設定し、ポリシー条件に使用することが可能 • ポリシーはPL/SQLで記述し、複数のポリシーをANDで評価して範囲を絞り込む「引き算型」の制御 ORDERS表 CLARKが問い合わせ SELECT * FROM orders; VPD ポリシー SCOTTが問い合わせ SELECT * FROM orders; 22 Copyright © 2026, Oracle and/or its affiliates CUSTOMER QTY OR_DATE CLARK用に書き換えられたSQL CLARK 300 06/03/17 SELECT * FROM orders WHERE customer = 'CLARK'; SCOTT 20 05/09/11 SCOTT 450 05/11/07 CLARK 125 06/02/04 SCOTT用に書き換えられたSQL SCOTT 310 06/01/26 SELECT * FROM orders WHERE customer ='SCOTT'; CLARK 90 05/12/15 customer = SYS_CONTEXT('USERENV', 'SESSION_USER')
  19. Virtual Private Database データベース・セッション情報に基づくVPDポリシー例 データベースのセッション情報からユーザー名、接続元IP、 クライアント・プログラム名を条件にしたアクセス制御 データベース・ユーザー IPアドレス 接続プログラム VPDポリシー例

    3条件が一致 → region_id = 'TOKYO' 不一致 → 1=0(該当行なし) 結果レコード ✓ TOKYOの行のみ × レコードなし CUSTOMER表 23 Copyright © 2026, Oracle and/or its affiliates ① VPDポリシー関数を作成 CREATE OR REPLACE FUNCTION apps.customer_policy_fn(s VARCHAR2, o VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN CASE WHEN SYS_CONTEXT('USERENV','SESSION_USER') = 'APP_USER' AND SYS_CONTEXT('USERENV','IP_ADDRESS') = '10.20.30.40' AND SYS_CONTEXT('USERENV','CLIENT_PROGRAM_NAME') = 'JDBC Thin Client' THEN ‘<一致時に適用する行の絞り込み条件>’ ELSE '<不一致時に適用する行の絞り込み条件>' END; END; ② CUSTOMER表にVPDポリシーを登録 BEGIN DBMS_RLS.ADD_POLICY( object_schema=>'APPS', object_name=>'CUSTOMER', policy_name=>'CUSTOMER_POLICY', function_schema=>'APPS', policy_function=>'CUSTOMER_POLICY_FN', statement_types=>'SELECT'); END; ③ SQLを実行 --3条件満たしていれば、region_id = 'TOKYO'が追加されて実行 SELECT * FROM apps.customer;
  20. Virtual Private Database アプリケーションの情報に基づくVPDポリシー例 アプリケーションがユーザー情報に基づきアプリケーション・ コンテキストを設定し、それを条件にしたアクセス制御 アプリケーション ユーザー ※値の設定ロジックは アプリケーション側

    アプリケーション アプリケーション コンテキスト VPDポリシー例 region_id = 'アプリケーション・コンテキスト値' 結果レコード ✓ 入力した値のレコード CUSTOMER表 24 Copyright © 2026, Oracle and/or its affiliates ① アプリケーション・コンテキストの作成 CREATE CONTEXT customer_ctx USING apps.customer_ctx_pkg; CREATE OR REPLACE PACKAGE apps.customer_ctx_pkg AS PROCEDURE set_region(p_region VARCHAR2); END; CREATE OR REPLACE PACKAGE BODY apps.customer_ctx_pkg AS PROCEDURE set_region(p_region VARCHAR2) IS BEGIN DBMS_SESSION.SET_CONTEXT('CUSTOMER_CTX', 'REGION', p_region); END; END; ② VPDポリシー関数を作成 CREATE OR REPLACE FUNCTION apps.customer_policy_fn( p_schema VARCHAR2, p_object VARCHAR2 ) RETURN VARCHAR2 AS BEGIN RETURN q'[region_id = SYS_CONTEXT('CUSTOMER_CTX','REGION')]'; END; ③ CUSTOMER表にVPDポリシーを登録 (前ページと同じ) ④ アプリからアプリケーション・コンテキストを設定してSQL実行 -- アプリケーション側で値をセットする EXEC apps.customer_ctx_pkg.set_region('OSAKA'); -- region_id = 'OSAKA'の条件で実行される SELECT * FROM apps.customer;
  21. 26ai(23.26.2)~ 全エディション Deep Data Security 行・列・セルレベルのアクセス制御 アプリケーションを利用する実際のエンドユーザーのアイデンティティに基づき、きめ細かいアクセス制御を実現 • IdP(Microsoft Entra

    ID, OCI IAM)と連携し、エンドユーザーのID・ロール・属性情報をポリシー条件に使用 • 許可する行・列・DMLを データ権限 として定義し、データロール にまとめてエンドユーザーに付与 • コネクションプーリングなどの共有DB接続でも、アプリ側でセキュリティ・コンテキストを明示的に切り替えが可能 • ポリシーは宣言型SQLで定義し、複数のポリシーの許可範囲をORで組み合わせる「足し算型」の制御 IdP AI Agent セキュリティ コンテキスト SELECT * FROM EMP Analytics DB接続 エンドユーザー Applications Direct Access 25 Copyright © 2026, Oracle and/or its affiliates データ・ロール データ権限 SELECT ID, NAME FROM EMP WHERE EMPID = 100 EMP表
  22. Deep Data Security エンド・ユーザー エンド・ユーザーは、従来のデータベース・ユーザーとは異なり、自身のスキーマは保有しない 外部エンド・ユーザーとローカルエンド・ユーザーの2種類がある 外部エンド・ユーザーは、IdP認証後、実際にデータベースに接続するEntra IDもしくはOCI IAMユーザー ユーザー名やロールなどのアイデンティティの属性情報はセキュリティ・コンテキストとしてデータベースに格納される

    外部エンド・ユーザー: IdPで管理されるユーザー。自身のスキーマは保有しない Identity Provider (IdP) アプリケーション : IdPとデータベースに接続するアプリケーション。AI Agent, Analytics, Enterprise Application, SQL*Plus, SQL Developer等 22. Authenticate アクセス・トークン: IdPから発行されるユーザーとデータベースのアクセストークン。ユーザ名 やロール等のアイデンティティの属性情報を含む エンドユーザー・セキュリティ・コンテキスト: エンド・ユーザーのアイデンティティに関する属性情報。アクセス トークンの情報を元に作成される 26 Copyright © 2026, Oracle and/or its affiliates 3 Get DB Token DB Token User Token 1 App access External End User Username: Marvin Andersson Application: Compensation AI Advisor Assigned Roles: Employee, Manager 4 SQL+ Tokens Application Database connection 5 End User Security Context 6 Policy Enforcement
  23. Deep Data Security データ・ロール CREATE DATA ROLEでデータ権限を取りまとめるデータ・ロールを作成する グループや組織、データ・アクセスの用途に応じて必要なデータ権限をセットにしてロール化 2種類のデータ・ロール •

    外部マッピング用データ・ロール: IdPのアプリケーション・ロールやグループとマッピングする • ローカル用データ・ロール: ローカル・エンドユーザー、Application Identity、他のローカル・データ・ロールとマッピングする #Entra IDのアプリケーションロールとマッピング CREATE DATA ROLE employee_role MAPPED TO 'AZURE_ROLE=employee’; #OCI IAMのグループとマッピング CREATE DATA ROLE employee_role MAPPED TO 'IAM_OAUTH_GROUP=employee’; #ローカル用データロール CREATE DATA ROLE local_support_role; #ローカル・エンド・ユーザーに付与 grant data role local_support_role to <local_end_user>; 28 Copyright © 2026, Oracle and/or its affiliates
  24. Deep Data Security 行レベルのデータ権限 CREATE DATA GRANTでオブジェクトのアクセス・ポリシーを直接作成する 対象となるオブジェクトは、表、ビュー、マテリアライズド・ビュー 行レベルのデータ権限は、 WHERE句によってクエリーの行範囲を限定する

    エンドユーザー・セキュリティ・コンテキストやエンドユーザー・コンテキスト、別テーブルと結合したサブクエリーの値などを 条件にすることが可能 ※循環参照(同じ表の結果をサブクエリーに含める)はできない エンドユーザー・セキュリティ・コンテキストのユーザー名とemployees表のemail列 が一致した行のみSELECTを許可する オブジェクト 付与するデータ・ロール 29 Copyright © 2026, Oracle and/or its affiliates CREATE DATA GRANT ViewEmployeeRecord AS SELECT ON hr.employees WHERE email = ORA_END_USER_CONTEXT.username TO employee_role; SELECTを許可 条件(自分のみ)
  25. Deep Data Security 列/セル・レベルのデータ権限 列レベルのデータ権限は、SELECT・INSERT・UPDATEと列を組み合わせて指定する • 特定の列を除きたい場合は、ALL COLUMNS EXCEPTを使用 列と行を組み合わせた条件にすることで、セル・レベルでのデータ権限になる

    SELECT実行時、権限のない列値はNULLになる。NULLではなく任意の値にマスキングさせることも可能 一般社員用 データ権限 行レベルの条件に、phone列をUPDATE可能な条件を追加 CREATE DATA GRANT EmployeesOwnRecord AS SELECT, UPDATE (phone) ON hr.employees WHERE email = ORA_END_USER_CONTEXT.username TO employee_role; phone列はUPDATE可 エンドユーザー・コンテキストで取得した自分のempidとemployees表のmanager_idが 一致した行でssn以外の列をSELECT可。かつ、salary列はUPDATE可 MGR用 データ権限 ssn以外の全列 30 CREATE DATA GRANT ManagerEmpAccess AS SELECT(ALL COLUMNS EXCEPT ssn), UPDATE (salary) ON hr.employees WHERE manager_id = ORA_END_USER_CONTEXT.hr.emp_ctx.id TO manager_role; Copyright © 2026, Oracle and/or its affiliates salaryはUPDATE可 自分のEMPIDを条件に
  26. Deep Data Security SQLの実行結果 データベースは、実行時にSQLを透過的に書き換えることでアクセス制御を強制する データ権限の付与は加算的であり、最終的な権限は付与されるすべてのデータ権限のユニオン(和集合)になる Emma, 一般社員, EMP表にSELECT文を実行 一般社員用

    データ権限 SELECT name, ssn, phone, manager FROM hr.employees; エンドユーザー・セキュリティ・コンテキストからユーザー名を取り出して、 Where句の条件としてSQLを書き換える SELECT name, ssn, phone, manager FROM hr.employees WHERE email = ORA_END_USER_CONTEXT.username; Emmaの行だけがSELECTされる NAME SSN PHONE MANAGER -------- ------------ ------------ --------Emma 505-55-1234 555-345-2144 Marvin 1 row selected. 31 Copyright © 2026, Oracle and/or its affiliates Marvin, 一般社員かつマネージャー, 同じSELECT文を実行 一般社員用 データ権限 MGR用 データ権限 SELECT name, ssn, phone, manager FROM hr.employees; エンドユーザー・コンテキストで取得したマネージャーIDの条件をプラスしてSQLを書き換える SELECT name, ssn, phone, manager FROM hr.employees WHERE email = ORA_END_USER_CONTEXT.username OR manager_id = ORA_END_USER_CONTEXT.hr.emp_ctx.id; 自身の行 + ManagerがMarvinのメンバーの行もSELECTされる NAME SSN PHONE MANAGER -------- ------------ ------------ --------Marvin 205-92-3421 555-123-1234 Neena John 555-312-1222 Marvin Emma 555-345-2144 Marvin 3 rows selected.
  27. アクセス制御 行・列レベルのアクセス制御 代表的なアクセス制御の機能として、Virtual Private Database とDeep Data Security Deep Data

    Securityは、VPDのアクセス制御をリアルなエンドユーザー向けのアクセス制御として進化 32 Virtual Private Database Deep Data Security 特徴 データベース・ユーザーのセッション情報に基づいて SQLに動的なWHERE句を付加する エンドユーザーのID・ロール・属性に基づいて 行・列・セル単位でアクセスを制御 対応バージョン 8i~ 26ai (23.26.2)~ 対応エディション Enterprise Edition Standard Edition~ 対象ユーザー データベース・ユーザー エンドユーザー ポリシー定義 PL/SQL 宣言型SQL ポリシーの評価 同じ表に設定した複数ポリシーをANDで評価 複数のデータ権限を和集合(OR)で評価 ポリシーの特徴 Where句のパターン条件をPL/SQLでコーディングする ため、複雑な条件やパターンが多いのは苦手 データロールという権限単位で作成、それを積み重ね て付与できるので割り当て・管理や容易 向いている用途 DBセッション主体、シンプルなアクセス・ポリシー ローコード・ノーコードのツールでDeep Data Security が対応していない場合など Webアプリケーション、SQLツール、AI Agentなど、 IAM連携のアプリケーションユーザーやエンドユーザーを 意識した本格的なデータアクセス制御 Copyright © 2026, Oracle and/or its affiliates
  28. VPDとDeep Data Securityの選択ガイド データベース利用者がどこまでのデータ・アクセス制御を求めるかがポイント VPD DBユーザー・セッション単位 SYS_CONTEXT・ Application Context No

    ① アプリケーション利用者やSSOユーザーによる エンドユーザー単位のデータ・アクセス制御が必要か Yes ② Oracle AI Database 26ai RU 23.26.2以降か 利用ツール・ドライバ・開発基盤 を再選択 エンドユーザーやトークン認証 接続に対応するものに変更 No Yes No ③ クライアント側の利用ツール・ドライバ・開発基盤は エンドユーザーやトークン認証接続に対応しているか Yes Yes 再選択後 ④ IdP連携、SSOユーザーによる 認証及びアクセス制御が必要か Yes Deep Data Security 外部エンドユーザー トークン認証+データ・ロール 33 Copyright © 2026, Oracle and/or its affiliates No Deep Data Security ローカル・エンドユーザー パスワード認証/MFA 対応構成へ変更できるか 26aiへアップグレードや移行 またはADBをハブとしたETL Data lake構成など No VPD + Application Context CLIENT_IDENTIFIER等で アプリ利用者を識別
  29. 12c~ Enterprise Edition DV Option Database Vault DBAの職務分掌とアクセス制御の強制適用 特権ユーザーの無制限なアクセスを禁止し、ユーザーごとのアクセスを厳格に制御 表・ビュー・パッケージなどのスキーマ・オブジェクトを「レルム」という論理領域にまとめて保護

    SYS・SYSTEMを含む特権ユーザーによる、認可されていない保護対象へのアクセスを拒否 IPアドレス・プログラム名・時間帯などの条件に基づき、SQLコマンドの実行を制御 レルムごとにデータ管理責任者を指定することも可能 レルム 許可されたアプリケーション 顧客データ スキーマ 34 Copyright © 2026, Oracle and/or its affiliates AIが生成した 破壊的なSQLコマンド 盗まれた資格情報 資格情報の不正利用 許可されたAIエージェント 許可されたDBA 設定したポリシーに 違反するアクセスを拒否 業務アプリ スキーマ 許可されていない アクセス経路
  30. Database Vault コマンドルールによる操作の制御 データベースの管理や操作に関わる様々なSQLを制限 接続元IPや時間帯を判定するルール・セットをコマンドルールに紐づけ、条件に合わない操作を拒否 不正ログインやランサムウェアによるデータ破壊を抑止するルール例 • 管理者アカウントの接続は、指定の踏み台サーバーから承認された作業時間帯だけ許可 • DROP

    TABLEやTRUNCATE TABLEを原則禁止し、保守用ロールの有効化時のみ許可 • UPDATEやDELETEは、指定のユーザー・アプリケーション・接続元IPアドレスの組合せの場合のみ許可 保守用ロール 無効時 9:00~18:00 DBA 踏み台サーバー TRUNCATE TABLE DROP TABLE UPDATE DELETE + DBユーザー 35 Copyright © 2026, Oracle and/or its affiliates 開発ユーザー + 接続元 IPアドレス アプリケーション
  31. 23ai ~ Enterprise Edition DV Option またはODSCライセンス SQL Firewall SQLレベルで制御するデータベース・ネイティブのファイアーウォール

    SQL単位でアクセスを制御するデータベース組込みのファイアーウォール SQLインジェクションによる不正なSQL実行を防止 IP Address データベース・ネイティブの機能として提供され、接続経路による回避はできない OS User DBユーザーの実行SQLと接続元を収集し、ファイアウォール・ポリシーを作成 Program • SQL: DDL、DMLなど • 接続元: IPアドレス、OSユーザー名、プログラム名 ポリシーは許可するSQLや接続元を登録するホワイトリスト方式 SQLをハッシュ化したシグネチャによる高速で厳格なアクセス制御 ポリシー違反には「ブロック+ログ記録」または「ログ記録のみ」を選択 違反はDBA_SQL_FIREWALL_VIOLATIONSに記録される Oracle Database SQL Firewall 36 Copyright © 2026, Oracle and/or its affiliates
  32. SQL Firewall 許可リスト外のSQLをブロック アプリケーション・サーバが 使用するDBユーザ: HR_APP select * from hr_employees

    where employee_id =‘210’ アプリケーション 利用者 SQL Firewall HR_APPの許可SQLリスト SQL Text select * from hr_employees where employee_id =:"SYS_B_0" SQL Signature F83C7D7D228A5DDB98AAAFA57DE0838A8B CE748359E5DE459D3D7AB7DCEBA07B Accessed Objects "HR_APP"."HR_EMPLOYEES" Current User HR_APP Top Level User initiated SQLs Y HR Application 侵入者 select * from hr_employees where employee_id =‘210’ OR 1=1 SQL Injection 37 Copyright © 2026, Oracle and/or its affiliates
  33. データベースの監査・監視 データベースの監査機能で操作を記録し、複数DBの監査証跡を集約して一元監視 監視基盤は、クラウドサービス型とソフトウェア・アプライアンス型から運用要件に応じて選択 DB標準機能 クラウド・サービス ソフトウェア・アプライアンス 統合監査 Oracle Data Safe

    Oracle Database Security Central Unified Audit DB内で 監査証跡を記録 監査ポリシーで対象操作を指定 SQLで監査証跡を検索・確認 保存・アーカイブ・削除を管理 39 Copyright © 2026, Oracle and/or its affiliates クラウドサービスで 集約・監視 監査ログの収集・検索・レポート 監視用サーバーの構築が不要 サービス基盤の運用はOracleが担当 自社管理の基盤で 集約・監視 監査ログの収集・検索・レポート SQL通信の監視・制御 監視基盤の構築・運用は利用者
  34. 12c~ 全エディション 統合監査 Unified Audit オブジェクト、権限、ユーザー・アクション等、監査対象をグループ化したポリシーベースの監査 必要な監査項目を包括した定義済みの監査ポリシーを提供 監査ログはAUDSYSスキーマのAUD$UNIFIED表に格納され、UNIFIED_AUDIT_TRAILビューで参照可 パフォーマンスの影響やストレージの肥大を抑制するために、監査対象を絞り込む •

    特定の操作(SELECTやINSERT等DMLやDDL)、機密表・列 • アプリケーションの通常アクセスは除くなど、セッション情報(IPアドレス、プログラム名等)の組み合わせ RMAN、Data Pumpの操作や、SQL*Loaderのダイレクト・パス・ロードも監査対象 DBMS_AUDIT_MGMTパッケージでログの定期削除をスケジューリング ログ監視製品と連携したログのビジュアライズや長期保管 例) 表に対するDML監査ポリシー CREATE AUDIT POLICY Policy1 ACTIONS UPDATE ON HR.EMP, DELETE ON HR.EMP_EXD; AUDIT POLICY Policy1; 40 Copyright © 2026, Oracle and/or its affiliates
  35. 統合監査 定義済みポリシー ポリシー名 ポリシーの内容 デフォルト ORA_LOGIN_LOGOUT (23ai~) ログイン、ログアウト操作 Yes ORA_SECURECONFIG

    監査で求められる基本的なデータベースの構成管理に関連する操作 Yes ORA$DICTIONARY_SENS_COL_ACCESS (23ai~) オプティマイザ・ディクショナリ表の機密列へアクセスする操作 Yes ORA_DATABASE_PARAMETER データベースのパラメータ変更に関連した操作 No ORA_ACCOUNT_MGMT ユーザー・アカウントの変更や権限に関連した操作 No ORA_CIS_RECOMMENDATIONS CISベンチマークで推奨される監査要件に関連した操作 No ORA_STIG_RECOMMENDATIONS (21c~) STIGで推奨される監査要件に関連した操作 No ORA_ALL_TOPLEVEL_ACTIONS (21c~) ユーザーによるSQL実行やプロシージャ呼出し(内部のSQLは除外) No ORA_RAS_POLICY_MGMT Real Application Securityに関連した管理アクション No ORA_RAS_SESSION_MGMT Real Application Securityに関連したセッションアクション No ORA_DV_SCHEMA_CHANGES (23ai~) Database Vaultの DVSYS, LBACSYSスキーマに関連した操作 Yes ORA_DV_DEFAULT_PROTECTION (23ai~) Database Vaultが提供する既定のレルム・コマンドルールに関連する操作 Yes ORA_OLS_SCHEMA_CHANGES (23ai~) LBACSYSユーザーが所有するオブジェクトに関連した操作 No ※デフォルトは新規DBの場合。DV関連はDatabase Vault利用時 41 Copyright © 2026, Oracle and/or its affiliates
  36. 統合監査 ORA_SECURECONFIG データベースの構成変更や権限管理など、セキュリティに関わる操作を対象 業務表のSELECT・INSERT・UPDATE・DELETEは、用途に応じて監査を追加する システム権限 システム権限 操作 CREATE / ALTER

    / DROP ANY TABLE CREATE / ALTER / DROP ANY PROCEDURE CREATE ANY LIBRARY CREATE ANY JOB CREATE EXTERNAL JOB EXEMPT ACCESS POLICY EXEMPT REDACTION POLICY ADMINISTER KEY MANAGEMENT ADMINISTER FINE GRAINED AUDIT POLICY ADMINISTER REDACTION POLICY ADMINISTER ROW LEVEL SECURITY POLICY ADMINISTER SQL FIREWALL ALTER USER CREATE / ALTER / DROP ROLE SET ROLE CREATE / ALTER / DROP PROFILE CREATE / ALTER / DROP DATABASE LINK CREATE / DROP DIRECTORY GRANT ANY PRIVILEGE GRANT ANY OBJECT PRIVILEGE GRANT ANY ROLE GRANT ANY SCHEMA PRIVILEGE CREATE USER / DROP USER BECOME USER / AUDIT SYSTEM ALTER DATABASE / ALTER SYSTEM PURGE DBA_RECYCLEBIN / LOGMINING 42 Copyright © 2026, Oracle and/or its affiliates CREATE / ALTER / DROP ANY DOMAIN CREATE / ALTER / DROP ANY MLE CREATE / DROP PUBLIC SYNONYM CREATE SQL TRANSLATION PROFILE CREATE / ALTER / DROP ANY SQL TRANSLATION PROFILE TRANSLATE ANY SQL CREATE / ALTER / DROP PLUGGABLE DATABASE ALTER DATABASE DICTIONARY EXECUTE ON REMOTE_SCHEDULER_AGENT. ADD_AGENT_CERTIFICATE
  37. 統合監査 条件による監査対象の絞り込み BYやEXCEPT句で対象ユーザーを限定し、WHEN句で接続元やアプリケーションなどの条件を設定する 必要なアクセスに監査対象を絞り込み、監査ログの量を抑える 43 監査対象 監査ポリシー ① 特定ユーザーだけ監査 指定ユーザーによるEMPLOYEES表の

    UPDATE、EMP_EXTENDED表の DELETEを監査 CREATE AUDIT POLICY Policy1 ACTIONS UPDATE ON EMPLOYEES, DELETE ON EMP_EXTENDED; AUDIT POLICY Policy1 BY UserX, UserY; ② 接続情報で絞り込み DBサーバー上からのローカル接続による UPDATE、DELETEを監査 CREATE AUDIT POLICY Policy2 ACTIONS UPDATE ON EMPLOYEES, DELETE ON EMP_EXTENDED WHEN 'SYS_CONTEXT(''USERENV'',''IP_ADDRESS'') IS NULL OR SYS_CONTEXT(''USERENV'',''IP_ADDRESS'') IN (''127.0.0.1'',''10.20.30.40'')' EVALUATE PER STATEMENT; AUDIT POLICY Policy2; ③ 通常のAP接続を除外 機密表の全操作を監査。ただし、指定 APサーバーからのJDBC接続を除外し、 監査ログの量を抑える CREATE AUDIT POLICY Policy3 ACTIONS ALL ON EMPLOYEES WHEN 'SYS_CONTEXT(''USERENV'',''HOST'') NOT IN (''ap01.example.com'') OR SYS_CONTEXT(''USERENV'',''CLIENT_PROGRAM_NAME'') <> ''JDBC Thin Client''' EVALUATE PER STATEMENT; AUDIT POLICY Policy3; Copyright © 2026, Oracle and/or its affiliates ※BY句を省略すると全ユーザー、Exceptは特定ユーザーを除く ※②の10.20.30.40はDBサーバー自身のIP。③はホスト名・プログラム名がNULLにならない前提
  38. 統合監査 表の列に限定した監査 (23ai~) 表・ビューの特定の列に限定した監査が可能 給与・個人情報などの機密列へのアクセスを重点的に記録 対象列にアクセスしない操作の記録を省き、不要な監査ログを削減 SELECT ID FROM EMPLOYEES;

    SELECT * from EMPLOYEES; CREATE AUDIT POLICY ポリシー名 ACTIONS DML(カラム名) ON テーブル名 SELECT ID, SALARY FROM EMPLOYEES; 例) EMPLOYEES表のSALARY列のSELECT, UPDATEを対象 CREATE AUDIT POLICY policy1 ACTIONS SELECT(SALARY),UPDATE(SALARY) ON HR.EMPLOYEES; AUDIT POLICY policy1; EMPLOYEES SALARY列 44 Copyright © 2026, Oracle and/or its affiliates
  39. 自然言語による監査ログの調査 Select AI/MCPを活用して、不審なアクセスの兆候を検出 Unified Auditの参照ビューから新たに自然言語検索用のビュー作成 ビューや列のコメント・アノテーションに、データの意味や検索ルールを記載する Select AIやMCPを利用して、自然言語による問い合わせ 調べる兆候 自然言語での問い合わせ例

    複数アカウントへのログイン試行 直近24時間に、同じ接続元ホストから5種類以上のユーザー名で ログインに失敗したケースを教えて アクセスできる範囲の探索 直近24時間に、3種類以上のオブジェクトへの操作が権限不足で 失敗したユーザーを教えて ログイン失敗後の成功 直近24時間に、同じユーザーと接続元ホストで、成功直前の 10分間に5回以上ログインに失敗したケースを教えて アカウント作成・権限付与 直近24時間のユーザー作成と権限付与について、実行者、対象、 実行時刻を教えて 深夜の機密データ参照 直近7日間に、午前0時から6時の間で個人情報を格納した表を 参照したユーザーと接続元ホストを教えて 機密データへの繰り返し参照 直近1時間に、個人情報が格納されている表に10回以上 SELECTを実行したユーザーと接続元ホストを教えて 45 Copyright © 2026, Oracle and/or its affiliates AI クライアント + MCPサーバー Select AI 自然言語 検索用ビュー Unified Audit (データベース監査)
  40. Data Safe Oracle Databaseのセキュリティを強化するクラウドベースのデータベース・セキュリティ・サービス OCIコンソールから一元的にデータベースのセキュリティ状態を可視化 • 構成やユーザー情報からセキュリティ・リスクを評価 • データベース監査ログの可視化 •

    テスト用のマスキングデータを生成 • SQLレベルで制御するファイアウォールの管理 ターゲットとなるOracle Database Assess Users Audit Protect Discover Mask • Autonomous Database, BaseDB, ExaDB-D • オンプレミスまたは他社クラウド上のOracle Database • 対応Versionは11.2~、Standard Editionでも利用可能 価格 • 対象がOracle Cloud Databaseの場合は無償 (※ログは100万件/月まで) • オンプレミス、他社クラウド上のOracle Database有償 46 Copyright © 2026, Oracle and/or its affiliates AWS, Azure上の Oracle Database Oracle Cloud Database オンプレミス上の Oracle Database
  41. Data Safe 提供する機能 47 セキュリティ アセスメント ユーザー アセスメント アクティビティ 監査

    SQL Firewall 機密データの 検出 データ マスキング データディクショナリ からデータベース 全体のリスク評価 過度な権限付与 や休眠アカウント 等のリスク評価 監査ログの収集 やレポート、アラー ト等のモニタリング 23aiの新機能 SQL Firewallを GUIで管理 列定義や実デー タのフォーマットか ら機密列を検出 数値や文字列を テスト用に任意の 値へとマスキング Copyright © 2026, Oracle and/or its affiliates
  42. Oracle Database Security Central データベース群全体のリスクとポリシーを一元管理 Customer-managed Compliance 360 Data 360

    • コンプライアンス対応レポート • リスクのマッピング • PCI-DSS、GDPR、SOXなどへの対応 • データベース内の機密データを検出 • データのアクセス権の付与状況を把握 User 360 Security Policy Management • 特権ユーザーの検出 • ユーザー評価、権限の変化を検出 • 監査・アラート管理 • Database Firewall / SQL Firewall • Database Vault Configuration 360 Auditing & Enforcement • データベースおよびアプリケーションの監査 • SQL監視 • SQLインジェクションのブロック 48 Copyright © 2026, Oracle and/or its affiliates • データベース群全体のセキュリティ評価 • コンプライアンスへのマッピングと設定変更の検出 Security Advisor
  43. Oracle Database Security Central Data 360:個別ツールを乱立させず、データベース群全体を可視化 高精度な検出 • 表のメタデータと実際の行データを組み合わせることで 検出精度を高め、誤検知を削減

    幅広い対応範囲 • 20のカテゴリーにわたる181種類の定義済み機密データ タイプを提供。独自のタイプやカテゴリーも定義可能 データベース群全体で一貫した検出 • すべての対象データベースから、機密データのタイプと カテゴリーを一貫した基準で検出・集約 データベース群全体のレポート • 検出結果を統合したサマリー・ダッシュボードにより、 環境全体の機密データを一元的に把握 49 Copyright © 2026, Oracle and/or its affiliates
  44. Oracle Database Security Central User 360:攻撃者に狙われる前に、脆弱な特権ユーザーを発見 リスクを自動評価 潜在的な脆弱性を発見 特権ユーザーのリスクを Critical,

    High, Medium, Low の4段階に自動分類 データベース群全体から、長期間使用されていないユーザーや 長期間変更されていないパスワードを検出 50 Copyright © 2026, Oracle and/or its affiliates
  45. Oracle Database Security Central Configuration 360:データベース群全体のセキュリティ状態を評価・強化 設定不備に優先順位づけ • 非暗号化の表領域やネットワーク通信、監査機能の 無効化など、検出したリスクを重要度別に分類・集約

    パッチおよびCVEの検出 • 未適用のパッチや、既知の脆弱性(CVE)を検出 標準セキュリティ構成との差異を監視 • 承認済みの構成をベースラインとして定義し、 データベース群全体から基準とのギャップを検出 コンプライアンス要件とのマッピング • 検出結果をCIS、DISA STIG、GDPRなどの コンプライアンス要件に対応 定期評価と結果の確認・承認 • 51 セキュリティ評価を定期的に実施し、その結果を 確認・承認することで、監査に備えた状態を維持 Copyright © 2026, Oracle and/or its affiliates 132 7 Risk Findings Categories 6 Risk levels
  46. Oracle Database Security Central 機能の特徴 Oracle Databaseや他社データベースのSQLアクセスログを 収集しセキュアに一元管理 OSやディレクトリのログにも対応 SQLアクセスログを取得する方式

    Database Firewall Users Databases Oracle Database, MySQL, MS SQL Server, IBM Db2, PostgreSQL, MongoDB • ネットワーク・トラフィック + Database Firewall • ネットワーク・トラフィック + ホストモニター • データベース監査ログ + エージェント Applications コンプライアンス要件に対応する定義済みレポート 不正なアクティビティを早期検知するアラート機能 Oracle Databaseの暗号化、特権管理などのセキュリティ 機能をフル活用したログの改ざん防止やアクセス制御 ソフトウェア・アプライアンスとして、OSとソフトウェアが パッケージングされて提供 OCIでは、マーケットプレイスからデプロイ可能 (※要ライセンス) 52 Copyright © 2026, Oracle and/or its affiliates Network events Alerts Audit data, event logs Reports Policies Audit Vault Server Operating systems & Directories Linux, Windows, AIX, Solaris, Active Directory
  47. Oracle Data SafeとDatabase Security Centralの比較 53 OCI Data Safe Oracle

    Database Security Central 特徴 OCIのマネージド・クラウドサービス サービス基盤・監査データの保管先はOracleが管理 顧客管理型のソフトウェアアプライアンス 環境構築が必要、サーバー・ストレージはユーザー自身で運用管理 ※OCIで稼働させる場合、Marketplaceからデプロイ可能 ターゲット クラウド/オンプレミス上のOracle Databaseのみ クラウド/オンプレミス上のOracle DB、対応するOracle以外のDB OS・ディレクトリ等の監査データも収集可能 SQL通信の取得・監視 × Database FirewallがSPAN/TAP等からミラーパケットを直接取得 Host Monitor AgentはDBサーバー上で取得しFirewallへ転送 DB監査ログの収集方式 Data SafeがDBの監査証跡から直接収集。オンプレミスDBには、 コネクタをインストールするか、プライベート・エンドポイント経由で接続 エージェント方式ではAudit Vault Agentをインストール 対応する監査証跡はエージェントレス収集も可能 監査データの保持期間 オンライン1~12か月+アーカイブ0~72か月 合計最大7年 オンライン・アーカイブ期間を自由に指定 保持可能なデータ量は内蔵/外部ストレージ容量に依存 セキュリティアセスメント DB設定やパラメータを評価し、リスクと改善案を表示 左記と同等 ユーザーアセスメント アカウント・権限・認証設定などを評価 左記と同等 機密データ検出 メタデータと実データから機密列を検出・分類 左記と同等 レポート アセスメント・監査・アラート等のレポートを表示・ダウンロード 左記に加え、GDPR、PCI DSS等のコンプライアンスレポートを提供 アラート・通知 監査イベントがアラート条件に一致した場合 OCI Events/Notificationsと連携して通知 監査イベントがアラート条件に一致した場合 メール通知とSyslog転送に対応 価格 Database Cloud ServiceのDBはサービス利用料が無償 オンプレミスDBは¥31,000/DB・月。監査レコードはDBごとに月 100万件まで追加料金なし。超過分は¥15.5/1万件 ライセンス定価 ¥1,782,500/Processor(監視対象DBベース) サーバー・ストレージ等の費用は別途 Copyright © 2026, Oracle and/or its affiliates
  48. データベース・セキュリティの無償提供 Data Safe / Database Security Central AIの脅威に備え、データベースのセキュリティ評価・監視を期間限定で無償提供 対象・適用条件を確認し、既存データベースのリスク把握と対策に活用 2027年2月28日まで

    期間限定プロモーション / 無償対象と条件は製品ごとに異なります Oracle Data Safe Oracle Database Security Central オンプレミス等のOracle DBに対する サービス料金を免除 追加のライセンス・サポート料金なし 対象:オンプレミス、Compute上、 Amazon RDSのOracle DB 期間:2026年6月12日~2027年2月28日 ※監査レコード収集の無料枠超過分は課金対象 対象:有効なOracle Databaseの サポート契約を持つお客様 期限:2027年2月28日まで 54 Copyright © 2026, Oracle and/or its affiliates
  49. DBSAT (Oracle Database Security Assessment Tool) Oracle Databaseのセキュリティ・リスクを可視化 簡単に実行できる軽量なコマンドライン・ツール データベースから構成・権限などの情報を収集

    実行は数分で完了 リスクの優先度と推奨対策を提示 実行手順 公式サイトからDBSATを取得し、DBサーバー上で解凍・配置 https://www.oracle.com/jp/security/database-security/assessment-tool/ SYSユーザーまたは必要な権限を付与したDBユーザーで実行 読みやすいレポートで評価結果を可視化 • 用途不明、過度な権限を持つユーザーがいないか • 適切なパスワード運用をしているか • 暗号化の有無 • 監査設定の状況 ① collect:構成情報を収集 ./dbsat collect ユーザー名@サービス名 出力ファイル名 DBパスワードを入力し、収集結果を暗号キーで暗号化 ② report:評価・レポート生成 動作要件: ./dbsat report 出力ファイル名 Oracle JDK 17以上 (※21以上を推奨)、 SQL*Plus 暗号キーで収集ファイルを復号し実行。DB接続は不要 OS情報も収集する場合はDBサーバー上で実行 ③ extract:レポートをキーで復号・展開 ./dbsat extract 出力ファイル名_report 56 Copyright © 2026, Oracle and/or its affiliates
  50. Select AI 自然言語によるデータベース問い合わせ基盤 Select AIは、構造化・非構造化データを自然言語で扱い、エンド・ユーザーのデータ活用を促進 自然言語によるSQL問い合わせは、LLMがSQLを生成し、Oracle Databaseが実行して結果を返す データベースのセキュリティ機能を活用し、AIによるセキュアな問い合わせを実現 アクションキーワード •

    runsql • 自然言語をSQLに変換し実行、結果を返す (NL2SQL) • RAGでベクトル検索を実行し、結果を返す • showsql:生成されたSQLを表示 • explainsql:生成されたSQLの処理内容を説明 • narrate:NL2SQL/RAGの結果を自然言語で説明 • chat:LLMが生成した応答を返す • translate :テキストの翻訳 • summarize :長文などのテキストを要約 • feedback :生成SQLにフィードバックしてクエリーを改善 • agent :設定したエージェント・チームを実行 59 Copyright © 2026, Oracle and/or its affiliates SELECT AI <アクション> <自然言語の質問>;
  51. Select AIのデータ・アクセス監査 NL2SQL・RAGの実行SQLを記録 自然言語の問い合わせに応じて実行されるSQLは、統合監査(Unified Audit)で記録可能 NL2SQLは対象表に、RAGの場合はベクトル表 (<ベクトル索引名>$VECTAB) にSELECTの監査ポリシーを設定する プロンプトおよび応答は会話・エージェント履歴に記録される CREATE

    AUDIT POLICY ポリシー名 ACTIONS SELECT ON スキーマ名.表名; AUDIT POLICY ポリシー名; 例) NL2SQLの場合の監査ログ 例) RAGの場合の監査ログ イベント時間 2026-09-24 09:44:49.879087 イベント時間 2026-09-23 22:21:26.827028 ユーザー名 APPS ユーザー名 APPS IPアドレス 111.22.33.44 IPアドレス 111.22.33.44 プログラム SQLcl プログラム SQLcl オブジェクト名 HR.CUSTOMERS オブジェクト名 HR.DEEPSEC_IDX$VECTAB SCN 50669017180947 SCN 50664728687571 SQLテキスト SELECT JSON_SERIALIZE( ... SELECT "c"."CUSTOMER_NAME", ... FROM "HR"."CUSTOMERS" "c" ORDER BY "c"."PRIORITY" DESC, ...) SQLテキスト バインド値 なし (※今回の場合) SELECT JSON_SERIALIZE( ... SELECT content AS data, ... VECTOR_DISTANCE(embedding, TO_VECTOR(:embed), cosine) ... FROM "HR"."DEEPSEC_IDX$VECTAB" ... ) バインド値 #1(19200):[0.0058453646, -0.033273615,0.0035034718,... 60 Copyright © 2026, Oracle and/or its affiliates
  52. Select AIのプロンプト履歴 長期会話の履歴 プロンプトの質問と回答は、下記のビューで参照可能 DBMS_CLOUD_AI.CREATE_CONVERSATIONで作成した長期会話が対象。短期会話は対象外 ユーザー自身の会話履歴のみ参照可能 ※DBA用ビューには、プライバシーの観点でプロンプトの内容は表示されない 例) USER_CLOUD_AI_CONVERSATION_PROMPTS USER_CLOUD_AI_CONVERSATIONS

    作成日時 2026-09-24 14:21:38.193697(JST) • 会話ID・タイトル・説明・作成/更新日時 AIプロファイル NL2SQL_PROFILE • 保存日数と、LLMに送る履歴数 会話ID 5C275A76-26ED-D265-E063-AFE2000AEFE1 会話タイトル New Conversation USER_CLOUD_AI_CONVERSATION_PROMPTS アクション NARRATE • 質問文・応答・AIプロファイル・アクション プロンプト 私の担当顧客についてのアクションを整理して • 日時・接続元IP・セッション情報 プロンプト レスポンス 担当顧客のアクションを優先度順に整理 DEF工業:A/未解決障害1件/次回7月29日 ABC商事:A/未解決障害1件/次回7月31日 GHI物流:B/未解決障害なし/次回7月31日 クライアントIP 11.22.33.44 61 Copyright © 2026, Oracle and/or its affiliates
  53. Select AI Agentの実行履歴 チーム・タスク・ツールの実行履歴 自分が所有するエージェント・チーム、タスク、ツールの実行履歴は以下のビューから参照することが可能 TEAM_EXEC_IDでチーム実行全体を結び付け、 TEAM_EXEC_ID + TASK_ORDERでタスクとツールを対応付ける ※DBA用のビューは、プライバシーの観点でプロンプトの内容は表示されない

    チーム全体の実行 USER_AI_AGENT_TEAM_HISTORY タスクごとの処理 USER_AI_AGENT_TASK_HISTORY ツールの呼び出し USER_AI_AGENT_TOOL_HISTORY TEAM_EXEC_ID 001 TEAM_EXEC_ID 001 TEAM_EXEC_ID 001 TEAM_NAME SUPPORT_TEAM TEAM_NAME SUPPORT_TEAM INVOCATION_ID 5 STATE SUCCEEDED TASK_ORDER 0 TASK_ORDER 0 START_DATE 22:21:00.869474 AGENT_NAME SUPPORT_SQL_AGENT AGENT_NAME SUPPORT_SQL_AGENT END_DATE 22:21:47.124884 TASK_NAME CUSTOMER_SQL_TASK TASK_NAME CUSTOMER_SQL_TASK STATE SUCCEEDED TOOL_NAME SUPPORT_SQL_TOOL INPUT 担当顧客の契約更新・障害・ 要望を確認し、次の対応を整理 INPUT 顧客・契約情報を検索 ACTION:RUNSQL RESULT CUST002を最優先とし、 CUST001、CUST003の順。 更新相談・契約確認を提案 OUTPUT CUST001:ACTIVE CUST002:RENEWAL CUST003:ACTIVE 62 Copyright © 2026, Oracle and/or its affiliates
  54. 自然言語の問い合わせに対するアクセス制御 Select AI・MCP連携におけるDeep Data Securityの動作 Select AI、MCP Serverのいずれの構成でも、Deep Data Securityによるアクセス制御が適用される

    LLMはアクセス制御後の結果セットを基に回答を生成する Select AI (NARRATE)の場合 エンドユーザー セキュリティ・コンテキスト IdP データベース接続 認証 (IdP認証) データベース接続 エンドユーザー セキュリティ・コンテキスト IdP 認証 (IdP認証) Oracle AI Database Q: Tanakaさんの 情報を表示して AIアプリケーション/MCP連携 Q : Tanakaさんの 情報を表示して LLM 回答生成 NL2SQL Select AI NL2SQL SQL実行 A: Tanakaさんの情 報は~の通りです。 (※SSN・給与列は 非表示になる) 63 Deep Data Security 結果セットを基に 回答の依頼・取得 Copyright © 2026, Oracle and/or its affiliates LLM SQL生成 回答生成 A: Tanakaさんの情 報は~の通りです。 MCPクライアント MCPサーバー 結果セット SQL SQL実行 Deep Data Security
  55. : No Data Copy : Data Copy マルチクラウドの各種データソースにアクセス可能 事前定義コネクタでのデータ取得、もしくはダイレクトアクセスで連携 データベース

    クラウド・ストレージ データ・カタログ Database Linkによる ダイレクト・クエリ・アクセス セキュアな ダイレクトクエリ・アクセス データ・カタログ連携 GitHub OCI Data Catalog AWS Glue データ・ソース 事前定義されたコネクタによる データ・インテグレーション Delta Sharing Delta Sharingプロトコル Apache Iceberg表 セキュアなアクセス 64 Copyright © 2026, Oracle and/or its affiliates Autonomous AI Lakehouseを データハブ基盤として マルチクラウド上の様々なデータに 透過的にアクセス
  56. Live AI HubとDBアクセス制御で実現するセキュア・ゲートウェイ ユーザー情報に基づいて行・列レベルでアクセス制御 様々な外部リソースをADBに接続し、ゲートウェイとして分散したデータに透過的にアクセス 外部データを参照するビューに、VPDやDeep Data Securityで一貫したアクセス制御を適用 Virtual Private

    Database データベース・ユーザ Database Link • MySQL, SQL Server, PostgreSQL等 DBリンク表 カタログ表 Catalog ローカル・エンドユーザ パスワード認証 Deep Data Security リモート・データベース • Oracle Database • Autonomous AI Database • 非Oracle DB ビュー Autonomous AI Database External Table データ・カタログ • OCI Data Catalog • Oracle AI Data Catalog • AWS Glue Data Catalog • Databricks Unity Catalog • Snowflake Open Catalog / Apache Polaris • オブジェクト・ストレージ • OCI Object Storage • Amazon S3, Azure, Google Cloud • S3互換ストレージも可 外部・エンドユーザ 65 トークン認証 (IdP連携) Copyright © 2026, Oracle and/or its affiliates 外部表 External Table Delta Sharing • Databricks • Oracle Data Share • Delta Sharing対応プロバイダ
  57. 各機能の使用に必要なエディションとライセンス オンプレミスのOracle Databaseの場合 認証 暗号化 マスキング アクセス制御 監査・監視 リスク・アセスメント 機能・製品

    MFA (多要素認証) トークン認証:Microsoft Entra ID トークン認証:OCI IAM Transparent Data Encryption ネットワーク暗号化 Data Masking and Subsetting Virtual Private Database Label Security Data Redaction Database Vault SQL Firewall Deep Data Security Unified Audit Database Security Central 利用可能エディション/必要なライセンス SE2 / EE (19.28 ~) SE2 / EE (19.18 ~) ※21cを除く SE2 / EE (26ai RU 23.26.2~) ※Identity DomainsのOAuth 2.0認証 EE + Advanced Security SE2 / EE EE + Data Masking and Subsetting Pack EE EE+ Label Security EE+ Advanced Security EE+ Database Vault EE+ Database Vault または Database Security Centralの監視対象DB SE2 / EE (23.26.2~) SE2 / EE Data Safe (クラウド) Database Security Centralライセンス ※詳細はライセンス価格表を参照 Data Safeの価格リストを参照 DBSAT SE2 / EE ※表記:SE2=Standard Edition2、EE=Enterprise Edition 66 Copyright © 2026, Oracle and/or its affiliates
  58. Oracle Database Cloud Serviceの場合 各エディションに含まれるセキュリティ機能 カテゴリ 認証 暗号化 マスキング アクセス制御

    監査・監視 BaseDB SE BaseDB EE BaseDB EE-HP BaseDB EE-EP ExaDB ADB-S MFA (多要素認証) 〇 〇 〇 〇 〇 〇 トークン認証:Entra ID、OCI IAM 〇 〇 〇 〇 〇 〇 TDE(表領域暗号化) 〇 〇 〇 〇 〇 〇 ネットワーク暗号化 〇 〇 〇 〇 〇 Data Masking and Subsetting Pack — 〇 〇 〇 〇 Virtual Private Database — 〇 〇 〇 〇 〇 Data Safe 〇※1 〇 Label Security — — 〇 〇 〇 〇 Data Redaction — — 〇 〇 〇 〇 Database Vault — — 〇 〇 〇 〇 SQL Firewall — — 〇 〇 〇 〇 Deep Data Security 〇 〇 〇 〇 〇 〇 Unified Audit 〇 〇 〇 〇 〇 〇 Data Safe ※2 〇 〇 〇 〇 〇 〇 機能 Database Security Central 別途 (製品ライセンスが必要) ※1 Data Safeのマスキングを利用 (Data Masking and Subsetting Packは利用不可) ※2 Data Safe:基本料金なし、監査は月100万件/DBまで無料 67 Copyright © 2026, Oracle and/or its affiliates