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

DBセキュリティ入門【認証編】

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for oracle4engineer oracle4engineer PRO
May 28, 2026
23

 DBセキュリティ入門【認証編】

本資料は、Oracle Databaseのセキュリティ機能概要を紹介する以下の4編構成の資料群のうち、「認証編」を説明するものです。
・暗号化・マスキング編
・アクセス制御編
・監査・評価編
・認証編

Avatar for oracle4engineer

oracle4engineer PRO

May 28, 2026

More Decks by oracle4engineer

Transcript

  1. 全体のセキュリティ対策 データ漏洩が起きるリスクパターンと対策 2 Copyright © 2026, Oracle and/or its affiliates

    リ ス ク 対 策 分 野 第三者の バイパスしたアクセスに よる不当なデータ奪取 例)ディスク盗難、 通信の盗聴、など 正規ユーザーの 業務範囲外の データ持ち出し 例)ユーザー乗っ取り、 内部不正、など 正規ユーザーの 業務範囲内の データ持ち出し 例)ユーザー乗っ取り、 内部不正、など 運用において 後から発生する 潜在的なリスク 例)権限設定の不備、 システムの脆弱性など ・暗号化 ・データ・マスキング ・認証 ・ユーザ管理 ・認可 (アクセス制御) ・監査 ・ログ監視 ・定期的な セキュリティ評価 ・パッチ適用 1 2 3 4
  2. 全体のセキュリティ対策 データ漏洩が起きるリスクパターンと対策 3 Copyright © 2026, Oracle and/or its affiliates

    リ ス ク 対 策 分 野 第三者の バイパスしたアクセスに よる不当なデータ奪取 正規ユーザーの 業務範囲外の データ持ち出し 正規ユーザーの 業務範囲内の データ持ち出し 構成変更等によって 後から発生する 潜在的なリスク ・暗号化 ・データ・マスキング ・認証 ・ユーザ管理 ・認可 ・監査 ・ログ監視 ・定期的なセキュリティ評価 ・パッチ適用 機 能 ・ サ ー ビ ス TDE(透過的データ暗号化) ネットワーク暗号化 Data Redaction 統合監査 DB Vault SQL Firewall Label Security VPD DBSAT CMU クラウドIAM 認証 Data Masking and Subsetting 1 2 3 4 Oracle Data Safe OCI Log Analytics Oracle Data Safe Autonomous Database ファイングレイン監査 暗号化編 アクセス 制御編 監査編 本資料の 対象
  3. 目次 4 Copyright © 2026, Oracle and/or its affiliates 1

    2 3 4 5 Oracle Database がサポートする認証方式 パスワード認証 外部認証 グローバル認証 まとめ
  4. 認証とは • サービスまたはシステムへ接続しようとするユーザーなどのエンティティの身元を検証し、正当性を確認する仕組み • アクセス可否の判定そのものではなく、認可の前提となるプロセス 6 Copyright © 2026, Oracle

    and/or its affiliates 1. 識別 2. 認証 3. 認可 利用者がだれかを宣言 ユーザーが 本人であることを確認 認証が完了したユーザーが どの操作ができるか決定 ID/Password 確認 アクセス許可 今回は一部ここも絡んでくる
  5. Oracle Databaseにおける認証 • データベース・ユーザーと非データベース・ユーザーの両方の認証が可能 • 認証後、権限やロールに基づく許可設定によって実行可能な操作を制御 • Oracle Databaseでは、認証および認可付与に関して次の3つのタイプに分類 1.

    ローカル・データベース認証 および ローカル・データベース認可 → パスワード認証 2. 外部認証 および ローカル・データベース認可 → 外部認証 3. 外部認証 および 外部認可 → グローバル認証 • 1つのデータベース環境で、要件に応じて複数の認証方式を併用可能 7 Copyright © 2026, Oracle and/or its affiliates 認証とは、データ、リソースまたはアプリケーションの使用を希望するユーザーやデバイスなどのエンティティの 身元を検証することです。 Release 26 – セキュリティ・ガイド より
  6. 認証の種類 Oracle Database がサポートする認証方法 ◼ パスワード認証 • データベース内部に保持された認証情報を用いてユーザーを認証する方式 • 追加で多要素認証も対応

    ◼ 外部認証 • OS やネットワークサービスなど、データベース外部の仕組みを用いて認証する方式 ◼ グローバル認証 • ディレクトリサービスやクラウド認証基盤を利用して、 ユーザー情報と認可情報を一元管理する方式 • 認証基盤が持つ認証機能が利用可能 8 Copyright © 2026, Oracle and/or its affiliates 方式 認証 認可 パスワード認証 ローカル ローカル 外部認証 外部 ローカル グローバル認証 外部 外部
  7. 認証の種類 SQL リファレンスより 9 Copyright © 2026, Oracle and/or its

    affiliates パスワード認証 外部認証 グローバル認証 Oracle AI Database SQL言語リファレンス, 26ai https://docs.oracle.com/cd/G47991_01/sqlrf/CREATE-USER.html 認証無しのスキーマ限定アカウントもできる (18c~)
  8. パスワード認証 Oracle Database 内に定義されたユーザー名とパスワードで認証 • 接続時に 「ユーザー名/パスワード」 を提示する • 最もシンプルな接続方法

    • データベース単体で完結するため、設計や障害切り分けが単純 • パスワードの複雑性、期限、失敗回数などのルールはユーザー・プロファイルで設定 • パスワードの最大長 • (~21c ) 30 バイト • (23ai~) 1,024 バイト • パスワード・ハッシュは Oracle Database 内にて管理・保存 • 19c よりデフォルト・ユーザーはパスワードレスに • 使用する際にはじめてパスワードを設定 • 多要素認証による認証強化も可能 * 11 Copyright © 2026, Oracle and/or its affiliates * 使用できる方式はADBか非ADBかで少し異なる $ sql user/pass@db
  9. パスワードの保護・管理を行うための機能 パスワードの保護 パスワード・ポリシー パスワードの変更 パスワードの保管 12 Copyright © 2026, Oracle

    and/or its affiliates パスワード・バージョン ユーザー・プロファイル パスワード検証関数 外部パスワード・ストア OCI シークレット管理 サービス (旧 OCI Vault シークレット) 段階的パスワード・ ロールオーバー データベース・パスワード・ ファイル
  10. パスワード・バージョン パスワードハッシュ(検証子)の生成と保存 • パスワードは指定のパラメータに従いハッシュ化したのち SYS.USER$ 表に保存 • 使用される認証プロトコルなどは、sqlnet.ora のパラメータで制御 •

    SQLNET.ALLOWED_LOGON_VERSION_SERVER:DBへの接続時に許可する下限の認証プロトコルを設定 • SQLNET.ALLOWED_LOGON_VERSION_CLIENT: クライアントとしてのDB接続時に許可される下限の設定値 • バージョン10G は大文字小文字を区別しないため、設定値は 12 以上を推奨 • バージョン 10G は 23ai より非サポート • 各ユーザーにて生成されているバージョンは DBA_USER ビューの他、DBSAT や Data Safe から確認が可能 13 Copyright © 2026, Oracle and/or its affiliates 設定値 パスワード・バージョンの生成 対応するクライアント 10G 11G 12C 12a ✕ ✕ ◦ 12.1.0.2 ~ 12 (default) ✕ ◦ ◦ 11.2.0.4 ~, 12.1 ~ 11 ◦ ◦ ◦ 10g ~ (*) 8 ◦ ◦ ◦ 10g ~ (*) (*) 11.2.0.3以降のクライアントは2012年10月のCPUがあてられていない場合、10gパスワードバージョンを使用
  11. データベース・パスワード・ファイル 管理権限を持つユーザーのパスワード管理 • 管理権限 (SYSDBA, SYSOPERなど) を持つユーザーは、データベース・パスワード・ファイルを使用することができる • V$PASSWORDFILE_INFO:パスワード・ファイルに関する情報 •

    V$PWFILE_USERS:パスワード・ファイルに格納されている全ユーザーの一覧 • パスワード・ファイルの作成、管理は orapwd ユーティリティを使用 • パスワード・ファイルの使用については、REMOTE_LOGIN_PASSWORDFILE パラメータで設定 • shared:複数データベースでパスワード・ファイルを共有 • exclusive:1つのデータベースのみでパスワード・ファイルを使用 • none:パスワード・ファイルを無視。管理ユーザーはOS認証にて接続する必要がある • Data Guard の REDO転送における認証要素としても使用される 14 Copyright © 2026, Oracle and/or its affiliates 管理者アクセス 検証
  12. ユーザー・プロファイル パスワードの長さなどのポリシーを設定 • ユーザーアカウントに適用されるリソース制限やパスワード・ ポリシーをまとめて適用・管理するための仕組み • 作成したプロファイルは ALTER USER ...

    PROFILE で ユーザーに割り当て • パスワードの有効期限や複雑性などを設定できる • 複数ユーザーに一括で割り当てることで、パスワードポリシーを統一 • ユーザーには1つだけプロファイルを割り当て • 外部ユーザーまたはグローバル・ユーザーに割り当てる場合、 パスワードのパラメータは無効に • OCI Database サービスでは一部パラメータが設定済み 15 Copyright © 2026, Oracle and/or its affiliates DB管理ユーザー 開発者DBユーザー アプリケーション DBユーザー DB利用者用 プロファイル アプリケーション用 プロファイル パスワード • 9文字以上 • 数字記号を1つ以上 • 5回失敗するとロック パスワード • 12文字以上 • 数字記号を2つ以上 • 2回失敗するとロック
  13. ユーザープロファイルのパスワード制限項目 password_parameters(RESOURCE_TYPE = PASSWORD) 16 Copyright © 2026, Oracle and/or

    its affiliates 制限 デフォルト値 * 説明 FAILED_LOGIN_ATTEMPTS 10 ログインに連続して失敗できる回数。超えるとロックされる PASSWORD_GRACE_TIME 7 パスワードの有効期限後、ログインできる猶予日数 PASSWORD_LIFE_TIME 180 同じパスワードを使用できる日数 PASSWORD_LOCK_TIME 1 FAILED_LOGIN_ATTEMPTSの後、ロックされる日数 PASSWORD_REUSE_MAX UNLIMITED パスワードを再利用する前に必要なパスワードの変更回数 PASSWORD_REUSE_TIME UNLIMITED パスワードを再利用できない日数 INACTIVE_ACCOUNT_TIME UNLIMITED ロックされるまでの連続非ログイン日数の許容数 PASSWORD_VERIFY_FUNCTION NULL パスワードの複雑性を検証する PL/SQL ファンクションを指定 デフォルトのスクリプトもあるが、独自に作成することも可能 PASSWORD_ROLLOVER_TIME 0 パスワード・ロールオーバーとして有効な日数 1秒単位で設定が可能 * Base Database 26ai の DEFAULT プロファイルの値
  14. ユーザープロファイルのリソース制限項目 resource_parameters(RESOURCE_TYPE = KERNEL) 17 Copyright © 2026, Oracle and/or

    its affiliates 制限 デフォルト値 * 説明 CONNECT_TIME UNLIMITED 1セッション当たりの経過時間制限(分単位) IDLE_TIME UNLIMITED 許容される非アクティブ時間(分単位) SESSIONS_PER_USER UNLIMITED ユーザーが同時に利用できるセッション数 COMPOSITE_LIMIT UNLIMITED セッションの総リソースコストをサービス単位で指定 CPU_PER_SESSION UNLIMITED 1セッションのCPU時間制限を、100分の1秒単位で指定 CPU_PER_CALL UNLIMITED 1呼び出し(パース、実行、またはフェッチ)あたりのCPU時間制限 を、100分の1秒単位で指定 LOGICAL_READS_PER_SESSION UNLIMITED 1セッション中に読み取ることができるデータブロックの許容数 LOGICAL_READS_PER_CALL UNLIMITED SQL文を処理する1呼び出し(パース、実行、またはフェッチ)で読 み取ることができるデータブロックの許容数 PRIVATE_SGA UNLIMITED 1セッションでSGAの共有プール内で割り当てることができるプライ ベート領域の大きさ(バイト単位) * Base Database 26ai の場合 DEFAULT プロファイルの値
  15. パスワード検証関数(PVF) パスワード要件を適用するための関数 • パスワード変更時に、長さ、文字の種類、旧パスワードとの差分などの条件をチェックする PL/SQL 関数 • ユーザー・プロファイルの PASSWORD_VERIFY_FUNCTION に設定して利用する

    • 以下の事前定義が用意 * • 独自の検証関数を作成して、業務要件に合わせたパスワード・ポリシーを実装することも可能 • 詳しくは $ORACLE_HOME/rdbms/admin/catpvf.sql を参照 18 Copyright © 2026, Oracle and/or its affiliates 関数名 長さ パスワード要件 * ora12c_verify_function 8 文字以上 英字と数字、特殊文字が1つ以上 ora12c_strong_verify_function 9 文字以上 大文字、小文字、数字と特殊文字が2つ以上 ora12c_stig_verify_function 15 文字以上 大文字、小文字、数字と特殊文字が1つ以上 CLOUD_VERIFY_FUNCTION ** 12 文字以上 大文字、小文字、数字と特殊文字が1つ以上 * パスワード要件の詳細はドキュメントを参照 Release 23 - 3.2.1 Oracle AI Databaseの組込みパスワード保護の概要 ** ADBのデフォルトパスワード検証関数。詳細は以下ドキュメントを参照 Autonomous AI Databaseによるユーザー・プロファイルの管理
  16. 段階的パスワード・ロールオーバー 一定時間のみ旧パスワードも利用可能に • パスワードの変更時、旧パスワードを一定期間だけ有効とし、新旧どちらのパスワードでも接続可能に • DBパスワードをローテーションするときのや、DBパスワード変更を即時に全アプリへ反映しづらい環境で有用 • ユーザー・プロファイルの PASSWORD_ROLLOVER_TIME を

    0 以外に設定し有効化 • 値は日単位で指定 • 時間は分数で表現(例:4 時間の場合、4/24) • ALTER USER <user> EXPIRE PASSWORD ROLLOVER PERIOD; にて古いパスワードの強制失効 • 旧パスワードでログインしたかは監査ログで確認可能 19 Copyright © 2026, Oracle and/or its affiliates パスワードA パスワードB パスワード更新
  17. 外部パスワード・ストア Secure External Password Store(SEPS) • データベース接続用のパスワードを「Wallet」ファイルとして保存し、クライアントがログイン時にアクセスして使用 • アプリケーション・コード、スクリプトなどへのユーザー名やパスワードのハードコードを抑止 •

    wallet は PKCS#12* ファイルを含む一式で管理 • 管理には mkstore ユーティリティを使用 • CONNECT /@db_connect_string で接続 20 Copyright © 2026, Oracle and/or its affiliates DBクライアント ① 資格情報を取得 ② 接続 Wallet $ sql /@db * Public-Key Cryptography Standards #12 ユーザー名/パスワード を格納
  18. 外部パスワード・ストアの使用(1/3) ウォレットの作成 21 Copyright © 2026, Oracle and/or its affiliates

    $ orapki wallet create -wallet <Wallet Path> -pwd <Wallet Password> -auto_login Oracle PKI Tool Release 23.0.0.0.0 – Production Version 23.0.0.0.0 Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. Operation is successfully completed. $ ls cwallet.sso cwallet.sso.lck ewallet.p12 ewallet.p12.lck ウォレットにシークレットを格納 $ mkstore -wrl <Wallet Path> -createCredential <接続文字列> <DB Username> <Password> Oracle Secret Store Tool Release 23.0.0.0.0 - Production Version 23.0.0.0.0 Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. Enter wallet password: <Wallet Password> TNSエイリアスまたはサービス名
  19. 外部パスワード・ストアの使用(2/3) シークレットの確認 22 Copyright © 2026, Oracle and/or its affiliates

    $ mkstore -wrl <Wallet Path> -listCredential Oracle Secret Store Tool Release 23.0.0.0.0 - Production Version 23.0.0.0.0 Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. Enter wallet password: List credential (index: connect_string username) 1: <接続記述子> <DB Username> 接続 $ sql /@<接続記述子> SQLcl: Release 25.3 Production on Thu Dec 18 01:54:56 2025 … SQL> WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /path/to/wallet) ) ) SQLNET.WALLET_OVERRIDE = TRUE
  20. 外部パスワード・ストアの使用(3/3) パスワードの更新 23 Copyright © 2026, Oracle and/or its affiliates

    SQL> alter user <DB Username> identified by <New Password>; User <DB Username> altered. $ mkstore -wrl <Wallet Path> -modifyCredential <接続記述子> <DB Username> <New Password> Oracle Secret Store Tool Release 23.0.0.0.0 - Production Version 23.0.0.0.0 Copyright (c) 2004, 2025, Oracle and/or its affiliates. All rights reserved. Enter wallet password: <Wallet Password>
  21. OCI シークレット管理サービス サービス概要/特徴 • パスワード、APIキー、トークン、証明書などのシークレットを 保管/取得/管理 • OCI リソースとして IAM

    ポリシーでアクセス制御 • バージョン管理とローテーション(運用自動化)に対応 • テンプレートによるシークレット自動生成 • 暗号化には OCI Vault の鍵を利用 ユース・ケース • DB接続情報・APIトークン等のハードコーディングを禁止し、 中央管理 • 安全に資格情報を配布と、定期ローテーション • 監査/統制のため「誰がいつ取得したか」の追跡 サービス価格 • 無償(5,000 シークレットまで) 24 Copyright © 2026, Oracle and/or its affiliates アプリの資格情報・APIキー等を安全に保管/配布 シークレット 管理サービス シークレット アプリケーション 取得 管理者 保管
  22. import oci secrets_client = oci.secrets.SecretsClient(oci.config.from_file()) get_secret_bundle_response = secrets_client.get_secret_bundle(secret_id="<secretId>") print(get_secret_bundle_response.data) OCI

    シークレット管理サービス の利用(1/2) シークレット取得の例 REST API 25 Copyright © 2026, Oracle and/or its affiliates GET /20190301/secretbundles/<secretId> Host: https://secrets.vaults.<region>.oci.oraclecloud.com … OCI CLI oci secrets secret-bundle get --secret-id <secretId> Python SDK API Ref:https://docs.oracle.com/en-us/iaas/api/#/en/secretretrieval/20190301/SecretBundle/GetSecretBundle OCI CLI Ref:https://docs.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/secrets/secret-bundle/get.html
  23. OCI シークレット管理サービス の利用(2/2) パスワードローテーションに伴う DBパスワードの自動変更 • OCI Functions との連携により、シークレット管理サービスのパスワードローテーション時に Function

    を起動 • データベースへのパスワード変更までを自動で実施 26 Copyright © 2026, Oracle and/or its affiliates 参考 • Oracle Cloud Infrastructureドキュメント - ウォレット関数を使用しないデータベース・シークレット・ローテーション • Oracle Cloud Infrastructureドキュメント -ウォレット関数を使用するデータベース・シークレット・ローテーション シークレット管理サービス OCI Functions Oracle Database ランダム文字列を生成し、 新しいバージョンを作成 Oracle Databaseへ接続し 新しく生成された文字列へ パスワードを変更 以下を格納 • ユーザー名 • パスワード • 接続文字列 alter user xxx identified by…
  24. 外部パスワード・ストアとシークレット管理サービスの違い パスワードをセキュアに保存し、ログやコードからパスワードを隠蔽することで、コピペや個人端末の侵害などからの 意図しない漏洩を緩和する点は同じ 27 Copyright © 2026, Oracle and/or its

    affiliates 外部パスワード・ストア シークレット管理サービス アクセス制御 OS のファイル権限 OCI IAM ポリシー シークレットを取得するクライアント Oracle Database クライアント OCI クライアント パスワードの保管場所 各クライアント上のローカル Wallet OCI サービス上 更新・ローテーション Wallet 内の資格情報を更新 手動または Function サービスと連携した 自動ローテーション 可用性 OSファイルとしてバックアップ 最大3リージョンにレプリケーション 管理ツール mkstore/orapki ユーティリティ * OCI コンソール / CLI / SDK / API * Instant Client にはこれらは梱包されていないため、 Full Clientを使用する必要がある
  25. 多要素認証 非ADB の場合 • Oracle Databaseのネイティブ・ユーザーに対して、多要素認証 (MFA) を構成 • 認証要素

    • Oracle Mobile Authenticator (OMA) プッシュ通知 • Cisco Duo プッシュ通知 • 証明書ベース認証 • MFAの失敗は統合監査ログの additional_info 列に記録 • 対応バージョン • 19.28 以降 29 Copyright © 2026, Oracle and/or its affiliates ② プッシュ通知 ③ 許可 ① アクセス $ sql user/pass@db
  26. 多要素認証 ADB の場合 • ADB の場合も同様に多要素認証をサポート • 併用可能な2つの認証方式 1. ログイン時MFA(Login-Time

    MFA) - ログイン時に追加の認証を実施 - OMA または Cisco Duo Mobile のプッシュ通知 2. SQLアクセス時MFA(SQL Access Token MFA) - 保護されたSQL実行前に追加の要素を要求 - Email/Slack のワンタイムパスワード、または OMA のプッシュ通知 • 対応バージョン • 19c • 26ai 30 Copyright © 2026, Oracle and/or its affiliates 認証要素 方式 ログイン時MFA SQLアクセス時MFA 電子メール ワンタイムパスワード ✕ ◦ Slack ワンタイムパスワード ✕ ◦ Oracle Mobile Authenticator (OMA) プッシュ通知 ◦ ◦ Cisco Duo Mobile app プッシュ通知 ◦ ✕
  27. ログイン時MFA(Login-Time MFA) 実行イメージ: OMA(1/1) ログイン 31 Copyright © 2026, Oracle

    and/or its affiliates ❯ ./sqlcl/bin/sql /nolog SQLcl: Release 25.1 Production on Sat Mar 07 17:56:56 2026 Copyright (c) 1982, 2026, Oracle. All rights reserved. SQL> set cloudconfig tns_files/adb_wallet/Wallet_ADBTPNRTDEV.zip SQL> connect mfa_user@adbtpnrtdev_medium Password? (**********?) ****************** Connected. プッシュ通知が届く 「許可」を選択 ※ OMAの場合
  28. SQLアクセス時MFA(SQL Access Token MFA) 実行イメージ: メール(1/3) ① SQLを実行 32 Copyright

    © 2026, Oracle and/or its affiliates SQL> select count(*) from sh.sales; Error starting at line : 1 in command - select count(*) from sh.sales Error at Command Line : 1 Column : 1 Error report - SQL Error: ORA-64660: Token Authorization is not complete for the user or the session. https://docs.oracle.com/error-help/db/ora-64660/ More Details : https://docs.oracle.com/error-help/db/ora-64660/
  29. SQLアクセス時MFA(SQL Access Token MFA) 実行イメージ: メール(2/3) ② OTP発行を依頼 33 Copyright

    © 2026, Oracle and/or its affiliates BEGIN DBMS_MFA.INITIALIZE_SESSION( email => '<mail_address>' ); END; / ③ OTPを受信する ※ メールの場合
  30. SQLアクセス時MFA(SQL Access Token MFA) 実行イメージ: メール(3/3) ④ 受信したOTPを設定 34 Copyright

    © 2026, Oracle and/or its affiliates BEGIN DBMS_MFA.SET_TOKEN( token => '<otp>' ); END; / ⑤ SQLを実行する SQL> select count(*) from sh.sales; COUNT(*) ___________ 918843
  31. • アカウント自体は Oracle Database 内部 に存在するが、認証の実行やパスワード管理は 外部 で行う方式 • データベース外の認証メカニズムを使用

    • データベースのパスワードを使わずにログインを実施 • データベース側では外部ユーザーを使用 • CREATE USER ... IDENTIFIED EXTERNALLY で作成 • クライアントの侵害がそのままデータベース侵害につながる可能性があるため注意が必要 • 使用できる外部サービスの例 • OS 認証 • Kerberos 認証 • RADIUS 認証 • PKI 証明書認証 外部認証 OSやネットワークサービスなど、データベース外部の仕組みを用いて認証 36 Copyright © 2026, Oracle and/or its affiliates 外部ユーザー DB 権限 DB ユーザー 外部で認証を実施済み
  32. OS認証 OS が保持しているユーザー情報を使って認証 一般ユーザーの外部OS認証 • DB ユーザー名を OS ユーザー名にマップ •

    OS_AUTHENT_PREFIX でOSユーザー名とDBユーザー 名の対応を定義(デフォルト: OPS$) • OSユーザー名にこの接頭辞を付けDBユーザー名と照合 • リモートOS認証は 21c より非サポート • REMOTE_OS_AUTHENT パラメータは廃止 DBAのOS認証 • DBサーバーのローカルで実施 • OSの専用グループに加えることで管理者として操作 • Linux: - OSDBAグループ (dba) - OSOPERグループ (oper) • Windows: - ORA_DBA - ORA_OPER など • CDBルートのみで有効 37 Copyright © 2026, Oracle and/or its affiliates
  33. グローバル認証 企業内のID管理サービスを用いて、ユーザー情報や認可情報を集中管理する方式 • 各データベースのローカルごとにユーザーを管理するのではなく、 企業で使用する ID 基盤にて認証を実施 • 複数データベース環境にわたるユーザーや権限を一元管理 •

    ID 基盤のユーザーやグループの情報にマッピングする形で、DB ユーザーや DB ロールを使用 • データベース側ではグローバル・ユーザーを使用 • CREATE USER GLOBALLY <username> … で作成 • 対象 IDサービス ディレクトリサービス - OID、OUD、OVD (Enterprise User Security: EUS) - Active Directory(Centrally Managed Users: CMU) Cloudサービス - OCI IAM - Microsoft Entra ID(旧Azure AD) 39 Copyright © 2026, Oracle and/or its affiliates 認証 接続 ディレクトリ・サービス / クラウド ユーザーと ロールを管理
  34. エンタープライズ・ユーザー・セキュリティとMicrosoft Active Directoryによる集中管理ユーザー エンタープライズ・ユーザー・セキュリティ(EUS) • Oracle8i〜 • Enterprise Edition機能 •

    認証方式 - パスワード、Kerberos、PKI証明書 • Oracle Identity Management Directory Services Plusラ イセンスが別途必要 - Oracle Internet Directory(OID)を別途構築 Microsoft Active Directoryによる集中管理ユーザー (Centrally Managed Users: CMU) • Oracle Database 18.1〜 • Enterprise Edition機能 • 認証方式 - パスワード、Kerberos、PKI証明書 • Microsoft Active Directory(AD)に、 データベース・ユーザーの認証と認可を統合 - EUSにくらべてシンプルな構成 グローバル・ユーザーとして利用可能な仕組み(1) Copyright © 2026, Oracle and/or its affiliates 40 エンタープライズ・ユーザー・セキュリティ・ガイド: 5.5 エンタープライズ・ドメインの管理 セキュリティ・ガイド: 6 Microsoft Active Directoryによる集中管理ユーザーの構成 user2 user1 role_a role2 Oracle Internet Directory Oracle Database エンタープライズ・ ユーザー user1 role1 グローバル・ ロール グローバル・ ユーザー エンタープライズ・ ロール Domain エンタープライズ・ ドメイン user1 group1 Active Directory Oracle Database ユーザー グループ user2 user3 group2 user1 role1 グローバル・ ロール グローバル・ ユーザー user2 排他マッピング(1:1) 共有マッピング(n:1) EUSは 23/26ai より非推奨、 CMU、またはクラウドプロバイダへの移行を推奨 【Oracle DbaseCamp】 第15回_【基本】Oracle Database データベース・ユーザー・セキュリティ入門 資料より
  35. OAuth2トークンによるOracle Databaseの認証と認可 OCI IAM Identity DomainsおよびEntra ID(Azure AD)による 統合的なユーザー管理 •

    Oracle Databaseのグローバル・ユーザおよびグローバル・ ロールとのマッピングの考え方は、CMUと同様。 • JDBC-thinドライバ、ODP.NETはネイティブクラウド認証対応 • 以下のOracle Database環境で利用可能 • Oracle Autonomous Database Serverless • Oracle Autonomous Database on Dedicated Exadata • Oracle Exadata Database Service on Dedicated Infrastructure • Oracle Base Database Service • オンプレミスOracle Databaseリリース19.18以降 (Entra IDのみ) OAuth2トークンによるOracle Databaseの認証と認可 グローバル・ユーザーとして利用可能な仕組み(2) Copyright © 2026, Oracle and/or its affiliates 41 セキュリティ・ガイド: 7 Oracle DBaaSデータベースに対するIAMユーザーの認証と認可 8 Oracle DatabaseのMicrosoft Azure Active Directoryユーザーの認証および認可 user1 group1 OCI IAM / Entra ID Oracle Database ユーザー グループ user2 user3 group2 user1 role1 グローバル・ ロール グローバル・ ユーザー user2 排他マッピング(1:1) 共有マッピング(n:1) OAuth2 token token ユーザー情報に アクセスするための アクセス権のリクエスト アクセストークンからユーザー情報 を取得してログイン OCI、Entra IDユーザー Oracle Databaseと IAM/Entra ID間の 通信はTLSにより 暗号化されセキュアに トークンを受け渡す Request Send OCI IAM / Entra ID(Azure AD) Blog記事: Oracle Databaseの外部認証 Oracle DatabaseのTLS暗号化を設定する OCI IAMとBaseDBのトークン・ベースの認証連携① OCI IAMとBaseDBのトークン・ベースの認証連携② OCI IAMとAutonomous Databaseのトークン・ベースの認証連携 【Oracle DbaseCamp】 第15回_【基本】Oracle Database データベース・ユーザー・セキュリティ入門 資料より
  36. クラウド ID サービスとの連携 • クラウド ID プロバイダにて認証したのち、発行したトークンをデータベース接続に利用可能 • 外部 ID

    プロバイダでのグループ紐づけがそのまま Oracle Database 内のロール・ユーザーの紐づけに対応 • データベース環境におけるユーザー管理および権限管理を一括化 • 外部管理のユーザーとDBユーザーのマッピング方法は次の2種類 - 共有スキーマ・マッピング - 排他的マッピング • データベースへの接続は TLSで保護されている必要あり • 対応 ID プロバイダ • Microsoft Entra ID • OCI IAM 42 Copyright © 2026, Oracle and/or its affiliates ユーザー ロール/ グループ グローバル・ ロール グローバル・ ユーザー 割り当て 共有スキーマ・マッピング ロール:DBユーザー 外部の割り当て状況により 動的に変化するため、 DB内での割り当て操作は 行わない 排他的マッピング 個別ユーザー:DBユーザー
  37. Microsoft Entra ID を用いた認証(MS-EI認証) OAuth 2.0 アクセス・トークンによる外部認証と権限連携 • Microsoft Entra

    ID(旧 Azure AD)を外部 ID プロバイダーとして利用し、Entra ID の発行するトークンで Oracle Database へ接続 • ユーザーは Entra ID にサインインするため、Entra ID の認証機能をそのまま活用 • Entra ID 側では、データベース用のアプリケーションを作成し、アプリ・ロールを定義および割り当て • Oracle Database 側は、アプリ・ロールをスキーマやロールにマッピングし、接続後の権限を制御 • 対応環境 • Oracle Database 19.18〜(21cを除く) • Autonomous AI Database(Serverless, Dedicated, Cloud@Customer) • Exadata Database Service(Dedicated, Exacales, Cloud@Customer) • Base Database Service 44 Copyright © 2026, Oracle and/or its affiliates 認証を実施 トークンを発行 トークンを提示して アクセス アクセス Entra ID アプリケーション
  38. トークンの取得方法 Entra ID がサポートするトークン取得フロー フロー 説明 ユースケース 認可コード 人間ユーザー向けの代表的な方式 ブラウザを使って対話的にログインし、認可コードを経由して

    トークンを取得 ネイティブアプリケーションまたは Webアプリケーション (例:SQL Developerなど) クライアント・クレデンシャル アプリケーション自身が、ユーザーなしで自分の ID でトークンを 取得して API に接続する方式 サービス間通信、デーモン、バッチ、 バックエンド処理、接続ツールなど インプリシット 旧来のブラウザアプリケーション向け方式。 ー ROPC アプリがユーザー名とパスワードを直接扱ってトークンを取得する 方式。非推奨 ー デバイス・コード クライアント側に十分な入力手段やブラウザがないとき、別の端 末のブラウザでユーザーがサインインしてトークンを取得する方式 CUI 環境、CLI ツールなど (例:シェル、SQLcl など) On Behalf Of (OBO) 上流のアプリケーションがユーザーのコンテクストを使って下流の アプリケーションにアクセスする方式 API を中継する構成のアプリケー ション 45 Copyright © 2026, Oracle and/or its affiliates
  39. 認可コード フロー概要 46 Copyright © 2026, Oracle and/or its affiliates

    ユーザー アプリケーション (OAuthクライアント) Entra ID (認可サーバー) 接続要求 認可リクエスト 認証を要求 認可コード返却 トークンリクエスト トークンを返却 Oracle Database トークン提示 トークン検証 認可エンドポイント /oauth2/v2.0/authorize トークンエンドポイント /oauth2/v2.0/token アクセス許可 認証を実施
  40. クライアント・クレデンシャル フロー概要 47 Copyright © 2026, Oracle and/or its affiliates

    アプリケーション (OAuthクライアント) Entra ID (認可サーバー) トークンリクエスト トークンを返却 Oracle Database トークン提示 トークン検証 トークンエンドポイント /oauth2/v2.0/token アクセス許可
  41. デバイス・コード フロー概要 48 Copyright © 2026, Oracle and/or its affiliates

    ユーザー アプリケーション (OAuthクライアント) Entra ID (認可サーバー) 接続要求 認証リクエスト 検証リンクを提示 トークンリクエスト トークンを返却 Oracle Database トークン提示 トークン検証 デバイスエンドポイント /oauth2/v2.0/devicecode トークンエンドポイント /oauth2/v2.0/token デバイスコード 検証URI https://login.microsoft.com/device loop 認証を実施 コードを入力 アクセス許可
  42. On-Behalf-Of (OBO) フロー概要 49 Copyright © 2026, Oracle and/or its

    affiliates アプリケーションA (フロントエンドなど) アプリケーションB (バックエンドなど) Entra ID (認可サーバー) トークンを提示(aud: アプリケーションB) OBO要求(w/ AT) Oracle Database トークン提示 トークン検証 トークンエンドポイント /oauth2/v2.0/token (前段フロー省略)トークン発行 トークン発行 アクセス許可
  43. OCI IAM を用いた認証 ユーザーやグループをOCI IAM側で集中管理 • ユーザーやグループを OCI IAM で集中管理

    • OCI IAM の資格情報を使用して OCI Database Service へ接続する • OCI IAM ポリシーが追加の認可として機能 • 接続方式は2つ • IAM トークン • IAM DBパスワード • 対応環境 ※ • Autonomous AI Database(Serverless, Dedicated, Cloud@Customer) • Exadata Database Service(Dedicated, Exacales, Cloud@Customer) • Base Database Service 51 Copyright © 2026, Oracle and/or its affiliates ※ OCI 環境のみ アクセス OCI IAM 資格情報を発行
  44. OCI IAM を用いた認証 併用可能な2つの接続方式 IAM データベース・パスワード • データベースには ユーザー名とパスワード を提示

    • 既存ツールを大きく変えずに IAM 統合 IAM トークン • OCIの資格情報を使用してトークンを取得し、 データベースに提示することで接続 • 例:APIキー、インスタンスプリンシパルなど • OCI Functions やコンピュート、OKE などOCIサービスは プリンシパル認証を使用することでクレデンシャルなしの DBアクセスが可能 52 ※ 非Default ドメインの場合、ユーザー名は ‘<domain>/<user>’ になります トークンの要求 トークンを発行 トークンを提示して アクセス OCI IAM Copyright © 2026, Oracle and/or its affiliates
  45. Oracle Database Client からトークンを取得する JDBC Thin ドライバー / ODP.NET •

    一部のDBクライアントではEntra ID / OCI IAM のトークン認証をサポートし、アプリに組み込みやすく • ODP.NET • managed/core バージョン23 よりトークンの自動取得取得および管理をサポート • JDBC Thin + ojdbc-extensions • 拡張機能により、Azure / OCI の config provider・token provider が利用可能 • SQLcl • SDKをインストールすることで、依存関係含めたソフトウェアを簡単に導入 53 Copyright © 2026, Oracle and/or its affiliates Entra ID SQL Developer 参考: • Release 26 JDBC開発者ガイド – 10 JDBCサービス・プロバイダ拡張機能 • Release 26 Oracle Data Provider for .NET開発者ガイド - 20 Oracle Data Provider for .NETの Microsoft Entra IDクラス • GitHub - oracle/ojdbc-extensions • A-Team Chronicles - Seamless authentication to the Oracle Database with SQLDeveloper, 23ai JDBC drivers and an OCI Identity Domain • Developers Blogs - 23c JDBC seamless authentication with OCI IAM and Azure AD
  46. Oracle Database 認証機能まとめ Oracle Database のサポートする3タイプの認証方式 ✓ パスワード認証 • データベースに作成されたユーザー名とパスワードを使ってログインする、最も基本的な方式

    • 必要に応じて多要素認証を設定し、認証を強化 ✓ 外部認証 • データベース外の仕組みで認証された利用者を Oracle Database が受け入れる方式 • データベース側で個別のパスワード管理を低減 ✓ グローバル認証 • クラウドIDプロバイダなどでユーザー状況を一元管理する方式 • 認証強化及び複数データベースにまたがるユーザー管理を企業の中で統一化しやすい 55 Copyright © 2026, Oracle and/or its affiliates
  47. 26ai FREE では従来の無償版 XE では使えなかった機能含め、セキュリティの機能の多くが解放されており、 簡単にお試しいただくことが可能です • Deep Data Security

    • Data Redaction • Oracle Label Security • Virtual Private Vault • Database Vault • SQL Firewall • ファイングレイン監査 …など その他 FREE で使用できる機能は以下リンクよりご確認いただけます。 https://apex.oracle.com/database-features/ また、簡単試していただくためのデモ手順を以下サイトで公開しています。ご興味がありましたら是非ご覧ください。 https://koi141.github.io/dbsec-tutorials/ Oracle Database 26ai FREE でセキュリティ機能を試す Copyright © 2026, Oracle and/or its affiliates 56