13.15 CONNECT
構文
注意:
マルチテナント・コンテナ・データベースは、Oracle Database 20cでサポートされる唯一のアーキテクチャです。ドキュメントが改訂されている間は、従来の用語が残っている可能性があります。ほとんどの場合、「データベース」と「非CDB」は、コンテキストに応じてCDBまたはPDBを指しています。アップグレードなどの一部のコンテキストでは、「非CDB」が以前のリリースの非CDBを指している場合もあります。
CONN[ECT] [{logon | / | proxy} [AS {SYSASM |SYSBACKUP |SYSDBA |SYSDG |SYSOPER | SYSRAC | SYSKM}] [edition=value]]
logonの構文は、次のとおりです。
username[/password] [@connect_identifier]
proxyの構文は、次のとおりです。
proxyuser[username] [/password] [@connect_identifier]
注意:
proxyの構文でusernameを囲んでいる大カッコは、オプションの項を示しているのではなく、構文に必要です。たとえば、プロキシ・ユーザーhr
を介してパスワードwelcome1
でscott
に接続するには、次のように入力します。
CONNECT hr[scott]/welcome1
指定したユーザー名でOracle Databaseに接続します。 CONNECTコマンドを実行すると、サイト・プロファイルglogin.sqlおよびユーザー・プロファイルlogin.sqlが実行されます。
CONNECTコマンドでは、初期接続に失敗した場合にユーザー名またはパスワードを求めるプロンプトは表示されません。
警告:
パスワードをプレーン・テキストで指定すると、セキュリティ上の危険があります。パスワードを省略し、パスワードの入力を求めるプロンプトが表示された場合にのみ入力することで、この危険を回避できます。
エンタープライズ・ユーザー・プロキシを使用してデータベースに接続するには、最初にプロキシを設定する必要があります。エンタープライズ・ユーザー・プロキシの設定については、『Oracle Database Enterpriseユーザー・セキュリティ管理者ガイド』を参照してください。
項
username[/password]
Oracle Databaseへの接続に使用するユーザー名およびパスワードを指定します。usernameおよびpasswordを省略すると、SQL*Plusは入力を求めるプロンプトを表示します。usernameの入力を求めるプロンプトが表示された場合にスラッシュ(/)を入力するか、[Return]を押すか、または「実行」をクリックすると、SQL*Plusはデフォルトのログオンを使用してユーザーをログインさせます。詳細は、「/(スラッシュ)」を参照してください。
passwordのみを省略すると、SQL*Plusでは、passwordの入力を求めるプロンプトが表示されます。プロンプトを表示する場合、SQL*Plusが端末画面にpasswordを表示することはありません。
SQL*Plusでのパスワードの変更方法については、「PASSWORD」コマンドを参照してください。
connect_identifier
Oracle Net接続識別子を指定します。正確な構文はOracle Netの構成によって異なります。詳細は、Oracle Netのマニュアルを参照するか、またはデータベース管理者に問い合せてください。SQL*Plusは、サービス名についてはプロンプトを表示せず、接続識別子の指定がない場合は、デフォルトのデータベースを使用します。
connect_identifierは、プラガブル・データベース(PDB)への接続にも使用されます。『Oracle Database管理者ガイド』を参照してください。
edition=value
Oracleセッション・エディションの値です。1つのエディションによって、データベース内に1つのオブジェクトの2つ以上のバージョンが存在できます。これにより、変更したオブジェクトをデータベースにロードし、コンパイルして稼働時間中に実行するためのステージング領域が提供されます。このことは、特に、アプリケーションへのパッチ適用に関連する停止時間を短縮する場合に有用です。eedition=valueは、ORA_EDITION環境変数で指定されたエディション値よりも優先されます。詳細は、『Oracle Database管理者ガイド』を参照してください。
/ (slash)
オペレーティング・システム認証を使用するデフォルト・ログオンを表します。デフォルト・ログオンを使用する場合、connect_identifierは指定できません。デフォルト・ログオンでは通常、SQL*Plusはユーザー名OPS$nameを使用してユーザーをログインさせようとします。nameは、ご使用のオペレーティング・システムのユーザー名です。オペレーティング・システム認証の詳細は、『Oracle Database管理者ガイド』を参照してください。
SQL*Plusコマンドラインでは、アプリケーションでデータベースへの接続にパスワード資格証明が使用されます。このコマンドラインでは、資格証明をクライアント・サイドのOracle Walletに格納できます。Oracle Walletを使用するようにクライアントを構成すると、アプリケーションで、次の構文を使用してパスワード認証を使用するデータベースに接続できます。
CONNECT /@database_alias
セキュアな外部パスワード・ストアを使用するようにクライアントを構成する方法およびそのパスワード・ストア内の資格証明を管理する方法については、『Oracle Databaseセキュリティ・ガイド』を参照してください。
AS {SYSASM |SYSBACKUP |SYSDBA |SYSDG |SYSOPER |SYSRAC |SYSKM}
AS句を使用すると、システム権限が付与されているユーザーによる特権付き接続が可能です。また、デフォルト・ログオンである/(スラッシュ)でもこれらの特権付きの接続を使用できます。
システム権限については、『Oracle Database管理者ガイド』を参照してください。
使用方法
CONNECTは、現行のトランザクションをデータベースに対してコミットし、現行のユーザー名をOracle Databaseから切断し、指定されたユーザー名で再接続します。
データベースへの接続の際にアカウントの有効期限が切れたユーザーとしてログオンまたは接続した場合、SQL*Plusは、接続の前にパスワードを変更するように求めるプロンプトを表示します。
データベースへの接続の際にアカウントがロックされている場合は、メッセージが表示され、DBAがロックを解除するまで、そのアカウントへの(そのユーザーとしての)接続は許可されません。
アカウント管理の詳細は、『Oracle Database SQL言語リファレンス』の「CREATE USER」、「ALTER USER」および「CREATE PROFILE」コマンドを参照してください。
例
Oracle Netを介し、ユーザー名HRを使用して、FLEETDBというOracle Net別名を持つデータベースに接続するには、次のように入力します。
CONNECT HR@FLEETDB
パスワード・ファイルの設定の詳細は、『Oracle Database管理者ガイド』を参照してください。
現行ノードのインスタンスにユーザーHRの権限で接続するには、次のように入力します。
CONNECT HR AS SYSDBA
現行ノードのインスタンスにデフォルト・ユーザーの権限で接続するには、次のように入力します。
CONNECT / AS SYSDBA
簡単な接続またはネット・サービス名を使用して、CONNECTコマンドによりCDBに接続できます。
次の文では、hrappサービスを使用してhrユーザーに接続します。hrappサービスには、hrpdb PDBのPDBプロパティがあります。この例では、クライアントがhrappサービスのネット・サービス名を持つように構成されているものとします。
CONNECT hr@hrapp