【ITニュース解説】Schema Only Accounts Feature in Oracle 18c and 19c
2025年09月06日に「Dev.to」が公開したITニュース「Schema Only Accounts Feature in Oracle 18c and 19c」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
Oracle 18cで、直接ログインできないスキーマ専用アカウント機能が追加。重要なデータを持つスキーマへの不正アクセスを防ぎセキュリティを強化できる。操作は権限を持つ別ユーザーが代理接続で行う。
ITニュース解説
データベースは、企業のビジネスを支える重要なデータを保管する、まさにシステムの心臓部です。そのため、データベースのセキュリティをいかに強固にするかは、システム開発における最重要課題の一つと言えます。特に、アプリケーションがデータベースに接続するために使う専用のユーザーアカウントは、多くのデータにアクセスできる強力な権限を持っていることが多く、そのIDやパスワードの管理は非常に重要です。もしパスワードが漏洩すれば、不正アクセスによる情報漏洩やデータ改ざんといった深刻なインシデントに繋がりかねません。これまでのOracle Databaseでは、ユーザーアカウントを作成する際には必ずパスワードなどの認証方法を設定する必要があり、このパスワードをいかに安全に管理するかが常に課題となっていました。
このセキュリティ上の課題に対応するため、Oracle Database 18cで「スキーマオンリーアカウント」という新しい機能が導入されました。これは、パスワードなどの認証情報を一切持たない特殊なユーザーアカウントを作成する機能です。認証情報を持たないため、このアカウントを使ってデータベースに直接ログインしようとすることはできません。仮にログインを試みても、IDやパスワードが不正であるというエラーメッセージが表示され、接続は拒否されます。この仕組みにより、アプリケーション専用アカウントのパスワードが漏洩するリスクそのものを根本からなくすことができます。攻撃者がアカウント名を知ったとしても、データベースに侵入するための「鍵」が存在しないため、セキュリティを大幅に向上させることが可能です。
ログインできないアカウントが何のために存在するのかというと、それはデータベース内のテーブルやインデックスといったオブジェクトを所有するための「器」、すなわち「スキーマ」としての役割に特化するためです。データベースにおけるスキーマとは、関連するオブジェクト群をまとめて管理するための、いわば名前の付いた入れ物のようなものです。スキーマオンリーアカウントは、アプリケーションが必要とするテーブル群を所有する専用の器として機能し、データの実体を保持します。そして、このスキーマ内のオブジェクトを作成したり変更したりといった管理作業は、適切な権限を与えられた別のユーザー、例えば開発者やデータベース管理者が行います。これにより、データを所有するアカウントと、それを操作するアカウントを明確に分離することができ、より安全で整理された権限管理が実現します。
それでは、直接ログインできないスキーマオンリーアカウントとして操作したい場合はどうすればよいのでしょうか。そのために「プロキシ接続(代理接続)」という仕組みが用意されています。これは、特定のユーザーに対して、「あなたはこのスキーマオンリーアカウントの代理として接続することを許可します」という特別な権限を付与するものです。例えば、開発者用のアカウントDEV_USERに、アプリケーション用スキーマAPP_SCHEMA(スキーマオンリーアカウント)へのプロキシ接続権限を与えます。すると、DEV_USERは自身のパスワードで認証を行い、接続する際にAPP_SCHEMAとして振る舞うことを指定できます。接続が成功すると、そのセッション内ではAPP_SCHEMAとして認識され、APP_SCHEMAが所有するテーブルを直接操作することが可能になります。
プロキシ接続は便利ですが、「実際に誰が操作したのか」という証跡が残らなければ、セキュリティ上の問題となります。この点もOracle Databaseの監査機能によってカバーされています。監査を有効にしておけば、プロキシ接続経由で行われた操作ログには、「実際に操作を行った代理ユーザーの名前」と「接続先のスキーマ名」の両方が記録されます。これにより、いつ、誰が、どのスキーマとして、どのような操作を行ったのかを正確に追跡することができ、セキュリティと利便性を両立させることができます。
このスキーマオンリーアカウント機能は、Oracle Database 19cでさらに進化しました。18cの時点では、SYSDBAのような強力な管理者権限をこの種のアカウントに付与することはできませんでしたが、19cからはその制限がなくなり、管理者アカウントもパスワードなしでより安全に運用できるようになりました。また、この機能は非常に柔軟で、新規ユーザー作成時だけでなく、既存のユーザーに対しても適用可能です。コマンド一つで、パスワードを持つ通常のユーザーをスキーマオンリーアカウントに変更したり、逆にスキーマオンリーアカウントにパスワードを設定して直接ログイン可能な状態に戻したりすることができます。このように、スキーマオンリーアカウントは、不正アクセスのリスクを低減し、データベースのセキュリティを一段階引き上げるための強力な機能であり、システムエンジニアを目指す上で理解しておくべき重要な概念の一つです。