ユーザー、認証および認可

Oracle AI Databaseのセキュリティは、MongoDBのセキュリティとは大きく異なります。Oracle Database API for MongoDBのセキュリティ・モデルについて説明します(様々な操作を実行するためのユーザーの作成、ユーザーの認証およびユーザーの認可)。

MongoDBの場合、デフォルトではユーザー認証および認可チェックが有効になっていません。Oracle AI Databaseでは、常に認証が必要であり、必ず、リクエストした操作の実行を接続ユーザーが認可されていることが確認されます。認証に有効なユーザー名およびパスワードを指定する必要があります。

Oracle Database API for MongoDBでは、認証用に次の接続オプション値のみがサポートされています。

Oracle Database API for MongoDBは、Oracle AI Databaseのユーザー、権限およびロールに依存しています。MongoDBクライアントまたはドライバを使用して、これらのユーザーおよびロールを追加または変更することはできません。かわりに、SQLまたはOracle Database Actionsを使用してこれを実行できます。このAPIを使用するために必要な最小限のOracle AI Databaseロールは、CONNECTRESOURCEおよびSODA_APPです。

Oracle REST Data Services (ORDS)で使用する場合は、ユーザー(データベース・スキーマ)も有効にする必要があります。これは、PL/SQLプロシージャORDS.enable_schemaを呼び出すか、Oracle AI Database Actionsを使用して実行できます。

MongoDBの場合、"データベース"とはコレクションのセットのことです。MongoDBのためのOracle Database APIの場合、これはOracle AI Databaseのスキーマに相当します。

ノート:

MongoDBのためのOracle APIを使用して"データベース"を削除しても、基礎となるデータベース・スキーマは削除されません。かわりに、スキーマ内のすべてのコレクションを削除します。

管理ユーザーは、SQLを使用してスキーマを削除できます(たとえば、Autonomous Oracle AI DatabaseとともにDatabase Actionsを使用)。

APIの場合、ユーザー名はデータベース・スキーマ名である必要があります。この名前は大文字と小文字が区別されず、英字以外の文字(数字を含む)で開始できず、セキュアなパスワードを指定する必要があります。

APIのユーザーは、通常、そのスキーマ(ユーザー名はスキーマ名です)内でのみ操作を実行できます。このような操作の例として、新しいコレクションの作成、ドキュメントの読取りと書込み、索引の作成などがあります。

管理ユーザーが存在しないデータベース・スキーマ(ユーザー)にデータを挿入しようとすると、そのスキーマはスキーマ専用アカウントとして自動的に作成されます。つまり、パスワードがなく、ログインできません。新しいスキーマには、SODA_APPCREATE SESSIONCREATE TABLECREATE VIEWCREATE SEQUENCECREATE PROCEDUREおよびCREATE JOBの権限が付与されます。また、スキーマには無制限の表領域割当て容量も与えられ、Oracle REST Data Services (ORDS)を使用できるようになります。

APIの通常ユーザーの場合、現在のMongoDBデータベースを別のデータベースに切り替えるMongoDBシェル・コマンド( use <database>など)は通常サポートされていません。別のデータベース・スキーマに切り替えると、エラーが発生します。

ただし、管理ユーザー (CREATE USERALTER USERDROP USERのすべての権限を持つユーザー)は、新規ユーザー(データベース・スキーマ)を作成し、任意のユーザーとして任意のスキーマにアクセスできます。

管理ユーザーは、次の操作を実行できます。

管理ユーザーの使用を本番アプリケーションでは許可しないことをお薦めします。かわりに、アプリケーションには通常のユーザーとして、最小限の権限で接続してください。特に、特定のスキーマ(ユーザー)に固有のMongoClientを使用して、データベースにアプリケーションを接続します。

関連項目: