6.7 データベースへの接続
Oracleデータベースに接続するには、いくつかの方法があります。
表6-1 データベース接続方法と構文
接続のタイプ | 接続構文 | 説明 |
---|---|---|
コマンドラインから |
コマンドラインからアプリケーションをデータベース・サーバーに接続させるための一般的な書式を次に示します。
暗号化されたパスワードの入力を求めるメッセージが表示されます。 たとえば: SQLPLUS system@sales
Enter password: |
ほとんどのOracleのツール製品は、オペレーティング・システムのコマンドラインを使用して接続できますが、他の方法でも接続できます。 |
ログイン画面から |
|
一部のツールには、ログインの代替形式としてログイン画面が用意されています。ユーザーがデータベース・サーバーにログインするには、ツールのログイン画面のユーザー名フィールドにユーザー名と接続識別子の両方を指定し、パスワード・フィールドにパスワードを入力します。 |
3GLアプリケーションから |
exec sql connect : 前述の接続要求で、:usernameおよび:passwordは3GLの変数です。これらの変数は、静的にまたはユーザーからの入力によってプログラム内で設定できます。データベース・サーバーに接続する場合、:username変数の値の書式は次のとおりです。
:password変数には、接続先データベース・アカウントのパスワードが入ります。 |
OCIやプリコンパイラなど、3GLで作成されたアプリケーションは、クライアントからの直接データベース・アクセス用に中間層およびデータベース・アプリケーション開発者によって使用されます。 |
SQL*Plus内から |
SQLPLUS /nolog
SQL> CONNECT たとえば: SQLPLUS /nolog
SQL> CONNECT scott@serverx
Enter password: 前述のコマンドで、usernameとpasswordは、データベース・ユーザーとパスワードで、net_service_nameはネットワーク・サービス名です。 |
一部のOracleツールには、ツールを終了せずに、異なるユーザー名を指定してデータベースに接続できるコマンドがあります。 他のOracleのツール製品では、この説明とは異なる独自の機能やインタフェースに固有の方法が使用されます。たとえば、Oracle CDE Toolsでは、ログイン・ボタンと、ユーザー名、パスワードおよびリモート・データベースIDのフィールドが使用されます。 |
|
|
このパラメータは、複数のKerberosプリンシパルがデータベース・クライアント経由でログインする必要がある場合に、Kerberosプリンシパル( Kerberos認証を使用してデータベースに接続する場合は、
Oracle Databaseセキュリティ・ガイドを参照してください。 |
|
|
このパラメータは、データベース・クライアントのKerberosプリンシパルを指定するために使用されます。 これはオプションのパラメータです。ただし、このパラメータを使用する場合は、 |
IAMデータベース・パスワード検証認証の使用 |
SQLPLUS /nolog SQL> CONNECT username@net_service_name Enter password: password この接続リクエストでは、usernameはIAMユーザー名、net_service_nameはネットワーク・サービス名、passwordはIAMデータベース・パスワードです。 IAMユーザーは、パスワードベースのプロキシ認証を使用して、データベース・プロキシ・ユーザー・アカウントを介して接続できます。 SQLPLUS [user1]/password123\!@cdb1_pdb2 SQL> SHOW USER; select sys_context('USERENV','AUTHENTICATION_METHOD') from dual; select sys_context('USERENV','PROXY_USER') from dual; select sys_context('USERENV','CURRENT_USER') from dual; |
ユーザー認証および認可用にOracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)を構成した場合、IAMユーザーがIAMユーザー名およびIAMデータベース・パスワードを使用してOCI Database as a Service (DBaaS)に接続できます。この接続方法では、IAMデータベース・パスワード検証(パスワードの暗号化されたハッシュ)がユーザーを認証するためにIAMから取得されます。 このIAMデータベース・パスワードは、OCIコンソール・パスワードとは異なります。IAMユーザーが、OCIコンソールからこのパスワードを設定できます(OCI IAMパスワードの作成のビデオを参照)。 必要な認可が付与された後、SQL*Plusなどのオンプレミス・クライアント・アプリケーションを使用して、サポートされている任意のデータベース・クライアントからログインできます。 IAMデータベース検証でのIAMユーザー名およびIAMデータベース・パスワードの使用はデフォルトの構成であり、クライアントに追加のパラメータを設定する必要はありません。ただし、クライアント側の プロキシ認証を使用するようにクライアント接続(通常は中間層環境)を構成できます。この場合、パスワードベースのプロキシ認証を使用することで、プロキシ・データベースのユーザー・アカウントを介して接続するために必要な権限を持つ既存のIAMユーザーを変更できます。プロキシ・ユーザー・セッションに、IAMユーザーに付与されたすべての権限があります。 Oracle Databaseセキュリティ・ガイドを参照してください。 |
IAMトークンベースの認証(ベアラー・トークン)の使用 |
SQLPLUS /nolog
SQL> CONNECT /@connect_identifier
オプションの
|
ユーザー認証および認可用にIAMを構成した場合、IAMユーザーがIAMデータベース・トークン( IAMユーザー名およびIAMデータベース・パスワードを使用して、 IAMユーザーが、OCIコンソールからIAMデータベース・パスワードを設定できます(OCI IAMパスワードの作成のビデオを参照)。 データベース・クライアントは、OCI IAMエンドポイントから直接トークンを取得します。データベース・クライアントが追加メタデータとともにIAMエンドポイントを検出できるように、追加パラメータを設定する必要があります。追加のパラメータは IAMユーザーが これらのパラメータは、 Oracle Databaseセキュリティ・ガイドを参照してください。 |
IAMトークンベースの認証(PoPトークン)の使用 |
SQLPLUS /nolog
SQL> CONNECT /@connect_identifier
オプションの
IAMユーザーは、トークンベースのプロキシ認証を使用して、データベース・プロキシ・ユーザー・アカウントを介して接続できます。
|
ユーザー認証および認可用にIAMを構成した場合、IAMユーザーがIAMデータベース・トークン( この接続方法では、APIキー、セキュリティ・トークン、リソース・プリンシパル、サービス・プリンシパル、インスタンス・プリンシパルまたは委任トークン(委任トークンはCloud Shellでのみ使用可能)などのIAMユーザー資格証明のいずれかを使用して、IAMから クライアント・アプリケーションは、次のいずれかの方法で接続リクエストを送信できます。
これらのパラメータは、 プロキシ認証を使用するようにクライアント接続を構成できます。この場合、トークンベースのプロキシ認証を使用することで、プロキシ・データベースのユーザー・アカウントを介して接続するために必要な権限を持つIAMユーザーを変更できます。プロキシ・ユーザー・セッションに、IAMユーザーに付与されたすべての権限があります。 Oracle Databaseセキュリティ・ガイドを参照してください。 |
Azureトークンベースの認証の使用 |
SQLPLUS /nolog
SQL> CONNECT /@connect_identifier
トークン・ファイルの名前が
トークン・ファイル名が
|
ユーザー認証および認可用にMicrosoft Entra ID (旧称はMicrosoft Azure Active Directory)を構成してある場合、Azureユーザーは、Entra ID OAuth2アクセス・トークンを使用してOracle Databaseに接続できます。このアクセス・トークンは、有効期限と範囲があるベアラー・トークンであり、Entra ID拡張機能を備えたOAuth2.0標準に準拠しています。
トークンは、Linux、Microsoft PowerShellまたはその他の環境で実行されるツールおよびスクリプトからリクエストできます。これらのトークンは、Microsoft SDKを使用してプログラム的にリクエストすることもできます。 クライアント・アプリケーションは、次のいずれかの方法で接続リクエストを送信できます。
Oracle Databaseセキュリティ・ガイドを参照してください。 |
ノート:
IAMトークンベースの認証を構成した場合は、OCI_INTERACTIVE
、OCI_API_KEY
、OCI_INSTANCE_PRINCIPAL
、OCI_DELEGATION_TOKEN
、OCI_RESOURCE_PRINCIPAL
などのOCI認証フローを使用して、IAMシングルサインオン(SSO)資格証明でデータベース・クライアントがdb-token
を直接取得できます。
同様に、Azureトークンベースの認証を構成してある場合は、データベース・クライアントで、AZURE_INTERACTIVE
、AZURE_SERVICE_PRINCIPAL
、AZURE_MANAGED_IDENTITY
、AZURE_DEVICE_CODE
などの認証フローを使用してAzure SSO資格証明でアクセス・トークンを直接取得できます。
この機能は、JDBCシン・クライアント、ODP.NET CoreクラスまたはODP.NET管理対象ドライバ・クラスを使用する環境で使用できます。JDBCシン・クライアントに対してこの機能を構成するには、Oracle Database JDBC開発者ガイドを参照し、ODP.NETについては、Oracle Data Provider for .NET開発者ガイドを参照してください。