

# Oracle DB インスタンスへの接続
<a name="USER_ConnectToOracleInstance"></a>

Amazon RDS によって Oracle DB インスタンスがプロビジョニングされた後、標準の SQL クライアントアプリケーションを使用して DB インスタンスにログインできます。RDS はマネージドサービスであるため、SYS または SYSTEM としてログインすることはできません。詳細については、「[RDS for Oracle のユーザーと権限](Oracle.Concepts.Privileges.md)」を参照してください。

このトピックでは、Oracle SQL Developer または SQL\$1Plus を使用して RDS for Oracle DB インスタンスに接続する方法について説明します。サンプルの DB インスタンスの作成と接続のプロセスを示す手順の例は、「[Oracle DB インスタンスを作成して接続する](CHAP_GettingStarted.CreatingConnecting.Oracle.md)」を参照してください。

**Topics**
+ [

# RDS for Oracle DB インスタンスのエンドポイントを見つける
](USER_Endpoint.md)
+ [

# Oracle SQL Developer を使用した DB インスタンスへの接続
](USER_ConnectToOracleInstance.SQLDeveloper.md)
+ [

# SQL \$1Plus を使用した DB インスタンスへの接続
](USER_ConnectToOracleInstance.SQLPlus.md)
+ [

# セキュリティグループに関する考慮事項
](USER_ConnectToOracleInstance.Security.md)
+ [

# プロセスアーキテクチャに関する考慮事項
](USER_ConnectToOracleInstance.SharedServer.md)
+ [

# Oracle DB インスタンスへの接続のトラブルシューティング
](USER_ConnectToOracleInstance.Troubleshooting.md)
+ [

# sqlnet.ora パラメータを使用した接続プロパティの変更
](USER_ModifyInstance.Oracle.sqlnet.md)

# RDS for Oracle DB インスタンスのエンドポイントを見つける
<a name="USER_Endpoint"></a>

各 Amazon RDS DB インスタンスにはエンドポイントがあり、各エンドポイントに DB インスタンスの DNS 名とポート番号があります。SQL クライアントアプリケーションを使用して DB インスタンスに接続するには、DB インスタンスの DNS 名とポート番号が必要です。

Amazon RDS コンソールまたは AWS CLI を使用して、DB インスタンスのエンドポイントを見つけることができます。

**注記**  
Kerberos 認証を使用している場合は、「[Oracle を Kerberos 認証に接続する](oracle-kerberos-connecting.md)」を参照してください。

## コンソール
<a name="USER_Endpoint.Console"></a>

**コンソールを使用してエンドポイントを見つけるには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. コンソールの右上で、DB インスタンスの AWS リージョンを選択します。

1. DB インスタンスの DNS 名とポート番号を見つけます。

   1. [**データベース**] を選択して DB インスタンスを一覧表示します。

   1. 詳細を表示する Oracle DB インスタンスの名前を選択します。

   1. [**接続とセキュリティ**] タブで、エンドポイントをコピーします。また、ポート番号を書き留めます。DB インスタンスに接続するには、エンドポイントとポート番号の両方が必要です。  
![\[DB インスタンスのエンドポイントとポートを確認する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/OracleConnect1.png)

## AWS CLI
<a name="USER_Endpoint.CLI"></a>

AWS CLI を使用して Oracle DB インスタンスのエンドポイントを確認するには、[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンドを呼び出します。

**Example AWS CLI を使用してエンドポイントを見つけるには**  

```
1. aws rds describe-db-instances
```
出力で `Endpoint` を検索して、DB インスタンスの DNS 名とポート番号を検索します。出力の `Address` 行には DNS 名が含まれています。JSON エンドポイント出力の例を以下に示します。  

```
"Endpoint": {
    "HostedZoneId": "Z1PVIF0B656C1W",
    "Port": 3306,
    "Address": "myinstance.123456789012.us-west-2.rds.amazonaws.com"
},
```

**注記**  
出力には、複数の DB インスタンスに関する情報が含まれている場合があります。

# Oracle SQL Developer を使用した DB インスタンスへの接続
<a name="USER_ConnectToOracleInstance.SQLDeveloper"></a>

この手順では、Oracle SQL Developer を使用して DB インスタンスに接続します。このユーティリティのスタンドアロンバージョンをダウンロードするには、[Oracle SQL デベロッパーのダウンロードページ](https://www.oracle.com/tools/downloads/sqldev-downloads.html)を参照してください。

DB インスタンスに接続するには、DNS 名とポート番号が必要です。DB インスタンスの DNS 名とポート番号を見つける方法については、[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md) を参照してください。

**SQL Developer を使用して DB インスタンスに接続するには**

1. Oracle SQL Developer をスタートします。

1. [**Connections**] タブで、[**add (\$1)**] アイコンを選択します。  
![\[追加 (+) アイコンを強調表示した Oracle SQL Developer\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-sqldev-plus.png)

1. [**New/Select Database Connection**] ダイアログボックスで、DB インスタンスの情報を提供します。
   + [**Connection Name (接続名)**] に、接続の名前 (`Oracle-RDS` など) を入力します。
   + [**Username (ユーザーネーム)**] に、DB インスタンスのデータベース管理者の名前を入力します。
   + [**Password (パスワード)**] に、データベース管理者のパスワードを入力します。
   + [**Hostname (ホスト名)**] に、DB インスタンスの DNS 名を入力します。
   + [**Port (ポート)**] に、ポート番号を入力します。
   + **SID** には、DB 名を入力します。DB 名は、データベース詳細ページの **[Configuration]** (設定) タブで確認できます。

   完了したダイアログボックスは次のように表示されます。  
![\[Oracle SQL Developer での新しい接続の作成\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-sqldev-newcon.png)

1. [**接続**] を選択します。

1. 独自のデータベースを作成し、通常のデータベースに加え、DB インスタンスに対しクエリを実行できるようになりました。DB インスタンスに対してテストクエリを実行するには、次を実行します。

   1. 接続の [**Worksheet (ワークシート)**] タブに、次の SQL クエリを入力します。

      ```
      SELECT NAME FROM V$DATABASE;
      ```

   1. **実行**アイコンを選択して、クエリを実行します。  
![\[実行アイコンを使用した Oracle SQL Developer のクエリの実行\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-sqldev-run.png)

      SQL Developer はデータベース名を返します。  
![\[Oracle SQL Developer のクエリの結果\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-sqldev-results.png)

# SQL \$1Plus を使用した DB インスタンスへの接続
<a name="USER_ConnectToOracleInstance.SQLPlus"></a>

SQL\$1Plus などのユーティリティを使用して、Oracle を実行している Amazon RDS DB インスタンスに接続できます。SQL\$1Plus のスタンドアロンバージョンを含む Oracle Instant Client をダウンロードするには、[Oracle Instant Client Downloads](https://www.oracle.com/database/technologies/instant-client/downloads.html) を参照してください。

DB インスタンスに接続するには、DNS 名とポート番号が必要です。DB インスタンスの DNS 名とポート番号を見つける方法については、[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md) を参照してください。

**Example SQL\$1Plus を使用して Oracle DB インスタンスに接続するには**  
次の例では、DB インスタンス管理者のユーザー名を使用します。また、DNS 名を DB インスタンスに置き換えて、ポート番号および Oracle SID を含めます。SID 値は、DB インスタンスを作成したときに指定した DB インスタンスのデータベースの名前であり、DB インスタンスの名前ではありません。  
Linux、macOS、Unix の場合:  

```
1. sqlplus 'user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))'
```
Windows の場合:  

```
1. sqlplus user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))
```
次のような出力が表示されます。  

```
SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 21 09:42:20 2017
```
ユーザーのパスワードを入力すると、SQL プロンプトが表示されます。  

```
SQL>
```

**注記**  
`sqlplus USER/PASSWORD@longer-than-63-chars-rds-endpoint-here:1521/database-identifier` のような短い形式の接続文字列 (EZ Connect) は、最大文字数制限に達する可能性があるため、接続には使用しないことをお勧めします。

# セキュリティグループに関する考慮事項
<a name="USER_ConnectToOracleInstance.Security"></a>

DB インスタンスに接続するためには、DB インスタンスを、必要な IP アドレスとネットワーク設定を含むセキュリティグループに関連付ける必要があります。DB インスタンスは、デフォルトのセキュリティグループを使用することがあります。DB インスタンスの作成時に、デフォルトの設定されていないセキュリティグループを割り当てた場合は、ファイアウォールによって接続が禁止されます。新しいセキュリティグループの作成方法については、[セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md) を参照してください。

新しいセキュリティグループを作成したら、そのセキュリティグループと関連付けるように DB インスタンスを変更します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

SSL を使用して DB インスタンスへの接続を暗号化することで、セキュリティを高めることができます。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。

# プロセスアーキテクチャに関する考慮事項
<a name="USER_ConnectToOracleInstance.SharedServer"></a>

サーバープロセスは、ユーザーの Oracle DB インスタンスへの接続を処理します。デフォルトでは、Oracle DB インスタンスは専用サーバープロセスを使用します。専用サーバープロセスでは、各サーバープロセスは 1 人のユーザープロセスにのみ設定できます。任意で共有サーバープロセスを設定できます。共有サーバープロセスでは、各サーバープロセスは複数のユーザープロセスを設定できます。

多数のユーザーセッションがサーバー上でメモリを過度に使用している場合は、共有サーバープロセスの使用を検討することもできます。また、セッションが頻繁に接続されたり切断されてパフォーマンス上の問題を引き起こす場合も、共有サーバープロセスを検討できます。共有サーバープロセスの使用には欠点もあります。例えば、CPU リソースに負荷をかけることがあり、設定や管理がより複雑になります。

専用インスタンスと共有サーバーのプロセスの詳細については、Oracle ドキュメントの「[専用および共有サーバープロセスについて](https://docs.oracle.com/database/121/ADMIN/manproc.htm#ADMIN11166)」を参照してください。RDS for Oracle DB インスタンスで共有サーバープロセスを設定する方法の詳細については、ナリッジセンターの[共有サーバーを使用するように Amazon RDS for Oracle Database を設定する方法](https://aws.amazon.com/premiumsupport/knowledge-center/oracle-db-shared/)を参照してください。

# Oracle DB インスタンスへの接続のトラブルシューティング
<a name="USER_ConnectToOracleInstance.Troubleshooting"></a>

以下は、Oracle DB インスタンスの接続時に発生する可能性がある問題です。


****  

| 問題 | トラブルシューティングの推奨事項 | 
| --- | --- | 
|  DB インスタンスに接続できません。  |  新しく作成された DB インスタンスでは、使用できるようになるまで、DB インスタンスのステータスは [**creating**] となります。ステータスが [**available**] に変わると、DB インスタンスに接続できます。DB インスタンスクラスとストレージの合計によっては、新しい DB インスタンスを使用できるようになるまで最長 20 分かかることがあります。  | 
|  DB インスタンスに接続できません。  |  DB インスタンスを作成したときに指定したポートを経由して通信を送信または受信できない場合は、DB インスタンスに接続できません。DB インスタンスに指定したポートでインバウンドおよびアウトバウンド通信できることを検証するよう、ネットワーク管理者に確認してください。  | 
|  DB インスタンスに接続できません。  |  ローカルファイアウォールによって実施されるアクセスルールと、DB インスタンスのセキュリティグループで DB インスタンスへのアクセスを許可した IP アドレスが一致しない可能性があります。問題は、ほとんどの場合ファイアウォールのインバウンドまたはアウトバウンドルールです。 セキュリティグループでインバウンドのルールを追加または編集できます。**[ソース]** には **[マイ IP]** を選択します。これにより、ブラウザで検出された IP アドレスから DB インスタンスへのアクセスが許可されます。詳細については、「[Amazon VPC と Amazon RDS](USER_VPC.md)」を参照してください。 セキュリティグループの詳細については、[セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md) を参照してください。 セキュリティグループにルールを設定する手順については、[チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)](CHAP_Tutorials.WebServerDB.CreateVPC.md) を参照してください。  | 
|  **ターゲットホストまたはオブジェクトが存在しないため接続に失敗しました - Oracle、エラー: ORA-12545**   |  サーバー名とポート番号を正しく指定していることを確認します。[**Server name (サーバー名)**] に、コンソールからの DNS 名を入力します。 DB インスタンスの DNS 名とポート番号を見つける方法については、[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md) を参照してください。  | 
|  **無効なユーザーネーム/パスワード、ログインが拒否されました - Oracle、エラー: ORA-01017**   |  DB インスタンスには到達できましたが、接続が拒否されました。通常、これは誤ったユーザー名やパスワードが指定されたときに発生します。ユーザー名とパスワードを確認し、再試行します。  | 
|  **TNS: リスナーは現在、接続ディスクリプタで指定された SID を知りません - Oracle、エラー: ORA-12505**   |  正しい SID が入力されていることを確認してください。SID は DB 名と同じです。インスタンスの **[Databases]** (データベース) ページの **[Configuration]** (設定) タブで DB 名を探します。また、AWS CLI を使用して DB 名を確認することもできます。 <pre>aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,DBName]' --output text</pre>  | 

接続の問題の詳細については、「[Amazon RDS DB インスタンスに接続できない](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)」を参照してください。

# sqlnet.ora パラメータを使用した接続プロパティの変更
<a name="USER_ModifyInstance.Oracle.sqlnet"></a>

sqlnet.ora ファイルに含まれているパラメータでは、Oracle データベースサーバーおよびクライアントの Oracle Net 機能を設定します。sqlnet.ora ファイルのパラメータを使用して、データベースに出入りする接続のプロパティを変更できます。

sqlnet.ora を設定する理由の詳細については、Oracle ドキュメントの[プロファイルパラメータの設定](https://docs.oracle.com/database/121/NETAG/profile.htm#NETAG009)に関する記事を参照してください。

## sqlnet.ora パラメータの設定
<a name="USER_ModifyInstance.Oracle.sqlnet.Setting"></a>

Amazon RDS for Oracle パラメータグループには、sqlnet.ora パラメータのサブセットが含まれています。これらのパラメータは、他の Oracle パラメータと同じ方法で設定します。`sqlnetora.` プレフィックスは、どのパラメータが sqlnet.ora パラメータであるかを判別します。例えば、Amazon RDS の Oracle パラメータグループの場合、`default_sdu_size` sqlnet.ora パラメータは `sqlnetora.default_sdu_size` です。

パラメータグループの管理とパラメータ値の設定については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

## サポートされている sqlnet.ora パラメータ
<a name="USER_ModifyInstance.Oracle.sqlnet.Supported"></a>

Amazon RDS は、以下の sqlnet.ora パラメータをサポートしています。動的な sqlnet.ora パラメータの変更は即時に反映されます。


****  

| Parameter | 有効な値 | 静的/動的 | 説明 | 
| --- | --- | --- | --- | 
|  `sqlnetora.default_sdu_size`  |  `512` ～`2097152`   |  動的  |  セッションデータユニット (SDU) のサイズ (バイト単位)。 SDU は、バッファに配置され、ネットワークで一度に送信されるデータの量です。  | 
|  `sqlnetora.diag_adr_enabled`  |  `ON`, `OFF`   |  動的  |  自動診断リポジトリ (ADR) のトレースを有効化/無効化する値。 `ON` は、ADR ファイルのトレースを使用することを指定します。 `OFF` は、ADR 以外のファイルのトレースを使用することを指定します。  | 
|  `sqlnetora.recv_buf_size`  |  `8192` ～`268435456`   |  動的  |  セッションの受信オペレーションのバッファ容量制限。TCP/IP、TCP/IP with SSL、SDP の各プロトコルでサポートされます。  | 
|  `sqlnetora.send_buf_size`  |  `8192` ～`268435456`   |  動的  |  セッションの送信オペレーションのバッファ容量制限。TCP/IP、TCP/IP with SSL、SDP の各プロトコルでサポートされます。  | 
|  `sqlnetora.sqlnet.allowed_logon_version_client`  |  `8`, `10`, `11`, `12`   |  動的  |  Oracle DB インスタンスへの接続を確立するために、クライアント、およびクライアントとして機能するサーバーに許可される最小認証プロトコルバージョン。  | 
|  `sqlnetora.sqlnet.allowed_logon_version_server`  |  `8`, `9`, `10`, `11`, `12`, `12a`   |  動的  |  Oracle DB インスタンスへの接続を確立するために許可される最小認証プロトコルバージョン。  | 
|  `sqlnetora.sqlnet.expire_time`  |  `0` ～`1440`   |  動的  |  チェックを送信してクライアントサーバー接続がアクティブであることを確認する時間間隔 (分単位)。  | 
|  `sqlnetora.sqlnet.inbound_connect_timeout`  |  `0`、または `10`〜`7200`   |  動的  |  クライアントからデータベースサーバーに接続し、必要な認証情報を提供するまでの時間 (秒単位)。  | 
|  `sqlnetora.sqlnet.outbound_connect_timeout`  |  `0`、または `10`〜`7200`   |  動的  |  クライアントから DB インスタンスへの Oracle Net 接続を確立するまでの時間 (秒単位)。  | 
|  `sqlnetora.sqlnet.recv_timeout`  |  `0`、または `10`〜`7200`   |  動的  |  接続の確立後にデータベースサーバーがクライアントデータを待機する時間 (秒単位)。  | 
|  `sqlnetora.sqlnet.send_timeout`  |  `0`、または `10`〜`7200`   |  動的  |  接続の確立後にデータベースサーバーからクライアントへの送信オペレーションが完了するまでの時間 (秒単位)。  | 
|  `sqlnetora.tcp.connect_timeout`  |  `0`、または `10`〜`7200`   |  動的  |  クライアントからデータベースサーバーへの TCP 接続を確立するまでの時間 (秒単位)。  | 
|  `sqlnetora.trace_level_server`  |  `0`, `4`, `10`, `16`, `OFF`, `USER`, `ADMIN`, `SUPPORT`  |  動的  | ADR 以外のトレースの場合、指定したレベルでトレースをオンにするか、トレースをオフにします。 | 

サポートされている各 sqlnet.ora パラメータのデフォルト値は、リリースの Oracle Database デフォルトです。

## sqlnet.ora パラメータの表示
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing"></a>

AWS マネジメントコンソール、AWS CLI、または SQL を使用して、sqlnet.ora のパラメータとその設定を表示できます。

### コンソールでの sqlnet.ora パラメータの表示
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.Console"></a>

パラメータグループ内のパラメータの表示方法については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

Oracle パラメータグループでは、`sqlnetora.` プレフィックスにより、どのパラメータが sqlnet.ora パラメータであるかを判別します。

### AWS CLI での sqlnet.ora パラメータの表示
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.CLI"></a>

Oracle パラメータグループに設定されている sqlnet.ora パラメータを表示するには、AWS CLI の [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) コマンドを使用します。

Oracle DB インスタンスのすべての sqlnet.ora パラメータを表示するには、AWS CLI の [download-db-log-file-portion](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) コマンドを呼び出します。DB インスタンス識別子、ログファイル名、および出力のタイプを指定します。

**Example**  
次のコードでは、`mydbinstance` のすべての sqlnet.ora パラメータを一覧表示します。  
Linux、macOS、Unix の場合:  

```
aws rds download-db-log-file-portion \
    --db-instance-identifier mydbinstance \
    --log-file-name trace/sqlnet-parameters \
    --output text
```
Windows の場合:  

```
aws rds download-db-log-file-portion ^
    --db-instance-identifier mydbinstance ^
    --log-file-name trace/sqlnet-parameters ^
    --output text
```

### SQL クライアントでの sqlnet.ora パラメータの表示
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.SQL"></a>

SQL クライアントで Oracle DB インスタンスに接続すると、次のクエリで sqlnet.ora パラメータが一覧表示されます。

```
1. SELECT * FROM TABLE
2.    (rdsadmin.rds_file_util.read_text_file(
3.         p_directory => 'BDUMP',
4.         p_filename  => 'sqlnet-parameters'));
```

SQL クライアントで Oracle DB インスタンスに接続する方法については、「[Oracle DB インスタンスへの接続](USER_ConnectToOracleInstance.md)」を参照してください。