2.1 SQLclの起動および終了

ノート:

起動およびログイン・スクリプト

SQLclを起動すると、startup.sqlスクリプトが検索されます。このスクリプトは、プログラムの実行中に1回のみ実行されます。

接続ごとに、SQLclはlogin.sqlファイルを検索します。このファイルは、作成された接続ごとに実行されます。

Show Loginコマンドは、login.sqlファイルの場所を表示し、ファイルが存在するかどうかを確認します。

ログインとログアウト

次のコマンドを使用して、SQLclへのログインおよびログアウトを行います。

SQL [[option] [logon | /NOLOG] [start]]

ここで、optionの構文は次のとおりです。

-H[ELP]  | -V[ERSION]  | [ [-C[OMPATIBILITY] x.y[.z]]]  [-L[OGON]]   [-NOLOGINTIME] [-R[ESTRICT] {0|1|2|3|4}] [-S[ILENT]]

ここで、logonの構文は次のとおりです。

{username[/password] [@connect_identifier]  | /}  [AS {SYSASM |SYSBACKUP |SYSDBA |SYSDG |SYSOPER |SYSRAC |SYSKM}]  [edition=value]

ここで、startの構文は次のとおりです。

@{url | file_name[.ext]} [arg ...]

{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK]

保留中の変更をすべてコミットまたはロールバックし、OracleをログアウトしてSQLclを終了し、制御をオペレーティング・システムに戻します。

{QUIT | EXIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK]

保留中の変更をすべてコミットまたはロールバックし、OracleをログアウトしてSQLclを終了し、制御をオペレーティング・システムに戻します。

JVMオプションの設定

SQLclでOracle Java Virtual Machine (JVM)オプションを設定するには、次の環境変数を使用します。
JAVA_TOOL_OPTIONS

次の例は、WindowsでSQLclのユーザー・インタフェース言語をスペイン語(es)に変更する方法を示しています。

c:\SQLDev\sqlcl\20.2\sqlcl\bin>SET JAVA_TOOL_OPTIONS=-Duser.language=es
c:\SQLDev\sqlcl\20.2\sqlcl\bin>sql hr/oracle
Picked up JAVA_TOOL_OPTIONS: -Duser.language=es
SQLcl: Versi≤n 20.2 Production en mar. ago. 25 15:37:58 2020
Copyright (c) 1982, 2020, Oracle. Todos los derechos reservados.
Last Successful login time: Mar Ago 25 2020 15:38:01 -04:00
Conectado a:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Se ha encontrado login.sql en el CWD. El acceso a la DB estß restringido para login.sql.
Ajuste SQLPATH para incluir la ruta y activar la funcionalidad completa.
SQL>
次の例では、SQLclのユーザー・インタフェース言語をフランス語(fr)に変更し、SQLcl (-Xmx800m)で使用可能な最大メモリーを増やす方法を示します。
c:\SQLDev\sqlcl\20.2\sqlcl\bin>SET JAVA_TOOL_OPTIONS=-Duser.language=fr -Xmx800m
c:\SQLDev\sqlcl\20.2\sqlcl\bin>sql hr/oracle
Picked up JAVA_TOOL_OPTIONS: -Duser.language=fr -Xmx800m
SQLcl : version 20.2 Production sur mar. ao√t 25 15:57:21 2020
Copyright (c) 1982, 2020, Oracle. Tous droits rΘservΘs....

2.1.1 SQLclの制限レベルについて

セキュリティ強化のために、Oracle SQLclでは、オペレーティング・システムとやり取りする特定のコマンドを無効にできる、制限オプションが用意されています。

このオプションは、安全でない可能性がある操作(ホスト・コマンドの実行や、信頼できないソースからのスクリプトの実行など)を防ぐために役立ちます。

SQLclで使用可能な制限レベル、各レベルでの制限されるコマンド、およびこれらの制限を適用する場合のベスト・プラクティスを確認してください。

2.1.1.1 RESTRICTオプション

SQLclでは、5つの制限レベル(最も厳しい制限(4)から制限なし(0)まで)が定義されています。各レベルでは、特定のカテゴリのコマンドが許可または拒否されます。

各レベルでの制限されるコマンドについては、「レベル別の制限されるコマンド」を参照してください。

構文

SQL -R[ESTRICT] {0|1|2|3|4}

オプション

制限レベル アクセス 説明
4 最も厳しい制限

レベル1から4までのすべてのコマンドをブロックします。これには、ホスト・コマンド、スクリプト作成、および構成の変更が含まれます。

完全なリストについては、「レベル4での制限されるコマンド」を参照してください。

3 強い制限

SQLclでの外部スクリプト・ファイルの実行を無効にします。

レベル1から3までのコマンド(@@saveeditなど)をブロックし、レベル4のコマンドを許可します。

2 中程度の制限

生成されたSQLclコンテンツを外部ファイルに保存できないようにします。

レベル1とレベル2のコマンド(saveeditなど)をブロックし、レベル4とレベル3のコマンドを許可します。

1 最小限の制限

ホスト(OSレベル)コマンドを実行できないようにします。

レベル1のコマンド(edithostなど)をブロックし、レベル2から4までのコマンドを許可します。

0 制限なし

ホストおよびスクリプトの実行を含め、すべてのコマンドを許可します。

これはデフォルトの制限レベルです。

2.1.1.2 レベル別の制限されるコマンド

各制限レベルでの、SQLclによって無効化されるコマンドを確認してください。

レベル4での制限されるコマンド

  • accept
  • alias
  • append
  • archive
  • attribute
  • break
  • bridge
  • btitle
  • cd
  • change
  • clear
  • cloudstorage
  • column
  • compute
  • connmgr
  • copy
  • datapump
  • del
  • drivers
  • exit
  • find
  • format
  • history
  • info
  • input
  • list
  • load
  • loadqueryfile
  • migrateadvisor
  • net
  • oci
  • oradebug
  • oerr
  • password
  • pause
  • ping
  • pwd
  • quit
  • recover
  • repeat
  • rollback
  • run
  • script
  • secret
  • set \_12.1\_longident
  • set \_12.1\_pdb
  • set \_prelim
  • set arraysize
  • set autocommit
  • set autodblink
  • set autoprint
  • set classicmode
  • set clear
  • set cloudconfig
  • set closecursor
  • set cmdsep
  • set colsep
  • set compatibility
  • set concat
  • set datapump
  • set desc
  • set document
  • set editfile
  • set editor
  • set embedded
  • set encoding
  • set exitcommit
  • set flagger
  • set flush
  • set heads
  • set heat
  • set hidden
  • set highlighting
  • set history
  • set linenumbers
  • set linesize
  • set load
  • set loadformat
  • set loglevel
  • set long
  • set longc
  • set longchunksize
  • set maxdata
  • set maxrows
  • set maxspoolrowstruncate
  • set net
  • set newpage
  • set noverwrite
  • set null
  • set num
  • set numf
  • set parameterpolicy
  • set pause
  • set printtheme
  • set property
  • set secureliteral
  • set securedcol
  • set socksproxy
  • set space
  • set sqlco
  • set sqlformat
  • set sqlpluscompatibility
  • set sqlprefix
  • set sqlt
  • set statementcache
  • set statusbar
  • set suffix
  • set tab
  • set termout
  • set tnsadmin
  • set trimout
  • set trims
  • set truncate
  • set wallet
  • set wrap
  • set xquery
  • set xmlformat
  • set xmloptimizationcheck
  • show array
  • show autocommit
  • show autoprint
  • show autorecovery
  • show btitle
  • show buffer
  • show colsep
  • show commandline
  • show con\_name
  • show connection
  • show encodings
  • show encoding
  • show endbuft
  • show endbuftoken
  • show flagger
  • show heading
  • show headsep
  • show instance
  • show internalerrors
  • show java
  • show jdbc
  • show linesize
  • show lno
  • show locale
  • show login
  • show loboffset
  • show long
  • show longchunksize
  • show newpage
  • show nls
  • show null
  • show numformat
  • show numwidth
  • show pagesize
  • show pause
  • show pno
  • show prelim
  • show recsep
  • show recsepchar
  • show registry
  • show release
  • show repfooter
  • show repheader
  • show securedcol
  • show spool
  • show spparameter
  • show sqldev
  • show sqldev2
  • show sqlprompt
  • show suffix
  • show systemout
  • show termout
  • show toplevel
  • show trimout
  • show trimspool
  • show ufi
  • show urls
  • show wrap
  • show xquery
  • show xmloptimization
  • show xmloptimizationcheck
  • unload
  • vault
  • version
  • whenever
  • which
  • xquery

レベル3での制限されるコマンド

  • @@
  • @
  • get
  • start

レベル2での制限されるコマンド

  • save
  • spool
  • store

レベル1での制限されるコマンド

  • edit
  • host (!, $)

2.1.1.3 制限を適用する場合のベスト・プラクティス

SQLcl環境で最適なセキュリティおよび制御を実現するには、次のベスト・プラクティスに従います。これらの推奨事項により、適切な制限が適用されるようになり、システムの保護と運用の柔軟性とのバランスをとることができます。

  • セキュリティ強化のために最高の制限レベルを使用ずる

    ほとんどの本番環境またはセキュアな環境では、セキュリティ・リスクを最小限に抑えるために、最高の制限レベル(4)を使用する必要があります。

  • 特定のニーズがある場合に制限を下げる

    制限レベルを下げるのは、下げなればブロックされるコマンドの実行が必要なときのみにしてください。たとえば、インストール・スクリプトを実行する必要がある場合は、制限レベルを一時的に1に下げて、そのタスクの完了後にそれを上位レベルに戻します。

  • レベル0は慎重に使用する

    制限レベル0では、完全に自由に管理できるようになります。これは、開発環境や、分離された信頼できる環境の場合に役立つ可能性があります。ただし、ホスト・コマンドの実行許可によってセキュリティに影響がある可能性があるため、これは慎重に使用する必要があります。