スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

SET SESSION AUTHORIZATION文実行ユーザの変更

機能

HiRDBに認可識別子,及びパスワードを連絡して,接続中のユーザを変更します。

使用権限

DBA権限,又はCONNECT権限を持つユーザ
接続中のユーザを変更できます。

形式

 
  SET SESSION AUTHORIZATION {:埋込み変数1|?パラメタ1}
        〔{ USING | IDENTIFIED BY }{:埋込み変数2|?パラメタ2 }〕
 

オペランド

認可識別子を値として持つ埋込み変数,又は?パラメタを指定します。

認可識別子の大文字,小文字を区別して扱う場合,認可識別子を引用符(”)で囲んだ文字列を埋込み変数又は?パラメタに設定してください。

UAPの記述言語がC言語の場合,31バイト以下の固定長文字列のデータ型で,文字列はナル文字で終わらせてください。ナル文字で終わらないと,(エリア長−1)の文字列が認可識別子として使用されます。

UAPの記述言語がCOBOLの場合,30バイト以下の固定長文字列のデータ型で指定してください。認可識別子がエリア長より短い場合は文字列の右端に空白詰めしてください。文字列をナル文字で終わらせる必要はありません。

埋込み変数1には既定文字集合以外の文字集合は指定できません。?パラメタ1に文字集合名UTF16を指定した場合,60バイト以下の固定長文字列のデータ型で指定してください。

パスワードを値として持つ埋込み変数,又は?パラメタを指定します。

パスワードの大文字,小文字を区別して扱う場合,パスワードを引用符(")で囲んだ文字列を埋込み変数又は?パラメタに設定してください。

UAPの記述言語がC言語の場合,31バイト以下の固定長文字列のデータ型で,文字列はナル文字で終わらせてください。ナル文字で終わらないと,(エリア長−1)の文字列がパスワードとして使用されます。

ただし,埋込み変数としてポインタを使用した場合は,エリア長として31バイトを仮定するので,指定できるパスワード長が引用符を含めて30バイトに制限されます。引用符を含めて31バイト以上のパスワードを指定する場合はポインタを使用しないでください。

UAPの記述言語がCOBOLの場合,30バイト以下の固定長文字列のデータ型で指定してください。パスワードがエリア長より短い場合は文字列の右端に空白詰めしてください。文字列をナル文字で終わらせる必要はありません。

埋込み変数2には既定文字集合以外の文字集合は指定できません。?パラメタ2に文字集合名UTF16を指定した場合,60バイト以下の固定長文字列のデータ型で指定してください。

共通規則

  1. トランザクションの開始前,又はトランザクション内で最初に実行しなければユーザを変更できません。
  2. PREPARE文で前処理した結果はすべて無効になります。
  3. ホールダブルカーソルが開いている場合には,ユーザを変更できません。
  4. LOCK TABLE文でUNTIL DISCONNECT指定の排他を掛けている場合は,ユーザを変更できません。
  5. OLTP下のX/Openに従ったUAPでSET SESSION AUTHORIZATIONを指定する場合は,tx_begin又はxa_begin関数コール直後に実行するように指定します。
  6. 動的SQLのSET SESSION AUTHORIZATIONを実行した場合,処理完了時にCOMMITされます。
  7. 分散RDノードに接続中の場合は,ユーザを変更できません。
  8. ストアドプロシジャ中では実行できません。
  9. EXECUTE文を実行するとき?パラメタ2に設定する変数のデータ長は,最大32まで指定できますが,PREPARE文で前処理したSET SESSION AUTHORIZATION文に対してDESCRIBE INPUT文を実行すると,?パラメタ2のデータ長には30が設定されます。