SET ENCRYPTION PASSWORD
SET ENCRYPTION PASSWORD ステートメントは、 暗号化および暗号化解除の機能で使用されるデフォルトのパスワードおよびヒントを設定します。 このパスワードは認証に関するものではなく、 データの暗号化および暗号化解除にのみ使用されます。
このステートメントの使用について詳しくは、ENCRYPT_AES、ENCRYPT_RC2、ENCRYPT_TDES、DECRYPT_BIT、DECRYPT_BINARY、 DECRYPT_CHAR、および DECRYPT_DB を参照してください。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むことも、 あるいは対話式に実行することもできます。 これは、動的に準備できる実行可能ステートメントです。
権限
ステートメント内のグローバル変数を参照する場合は、ステートメントの権限 ID が保持する特権に、少なくとも次のいずれか 1 つが含まれなければなりません。
- ステートメント内で識別された、それぞれのグローバル変数ごとに、
- そのグローバル変数に対する READ 特権
- グローバル変数が含まれるスキーマに対する USAGE 特権
- データベース管理者権限
構文
.-␠=␠-. >>-SET--ENCRYPTION PASSWORD--+-----+----------------------------> >--+-password-variable--------+---------------------------------> '-password-string-constant-' >--+--------------------------------------------+-------------->< | .-=-. | '-WITH HINT--+---+--+-hint-variable--------+-' '-hint-string-constant-'
説明
- password-variable
- 暗号化パスワードを含む変数を指定します。
変数は、次の条件に合っていなければなりません。
- CHAR、VARCHAR、Unicode GRAPHIC、または Unicode VARGRAPHIC 変数でなければなりません。 変数の内容の実際の長さは、6 以上 127 以下であるか、または空ストリングでなければなりません。 空ストリングを指定する場合、デフォルトの暗号化パスワードは値なしに設定されます。
- NULL 値とすることはできません。
- すべての文字には大文字小文字の区別があり、 大文字に変換されることはありません。
- password-string-constant
- 文字定数。 この定数の長さは、6 以上 127 以下であるか、または空ストリングでなければなりません。 空ストリングを指定する場合、デフォルトの暗号化パスワードは値なしに設定されます。 リテラル形式のパスワードは、静的 SQL または REXX では許可されていません。
- WITH HINT
- データ所有者がパスワードを思い出すための値 ('Pacific' を思い出すための 'Ocean' など) が
指定されていることを示します。
ヒント値が指定されている場合、そのヒントは暗号化関数のデフォルトとして使用されます。
暗号値のヒントは、後に GETHINT 関数を使用して検索できます。
この文節を指定しない場合、および暗号化関数に対してヒントを明示的に指定しない場合には、
出力される暗号化データにヒントは組み込まれません。
- hint-variable
- 暗号化パスワードのヒントを含む変数を指定します。
変数は、次の条件に合っていなければなりません。
- CHAR、VARCHAR、Unicode GRAPHIC、または Unicode VARGRAPHIC 変数でなければなりません。 変数の内容の実際の長さは、32 を超えてはなりません。 空ストリングを指定する場合、デフォルトの暗号化パスワード・ヒントは値なしに設定されます。
- NULL 値とすることはできません。
- すべての文字には大文字小文字の区別があり、 大文字に変換されることはありません。
- hint-string-constant
- 文字定数。 この定数の長さは、32 よりも大きくすることはできません。 空ストリングを指定する場合、デフォルトの暗号化パスワード・ヒントは値なしに設定されます。
注
パスワード保護: 暗号化されたパスワードに不注意によりアクセスすることのないように、 プログラム、プロシージャー、または関数のソースにはパスワード・ストリング定数 を指定しないでください。 その代わりに、変数を使用してください。
リモート・リレーショナル・データベースに接続しているとき、 指定されたパスワード自体は「平文で」送信されます。 つまり、パスワード自体は暗号化されません。 このようなケースでパスワードを保護するには、 IPSEC (または IBM® i 製品同士の接続の場合は SSL) などの通信暗号化メカニズムを使用することを考慮してください。
トランザクションに関する考慮事項: SET ENCRYPTION PASSWORD ステートメントは、 コミット可能な操作ではありません。 ROLLBACK は、デフォルトの暗号化パスワードまたはデフォルトの暗号化パスワード・ヒントには 影響を与えません。
暗号化パスワードの初期値: デフォルトの暗号化パスワード およびデフォルトの暗号化パスワード・ヒントの初期値は、どちらも空ストリング ('') です。
暗号化パスワードの有効範囲: デフォルトの暗号化パスワード およびデフォルトの暗号化パスワード・ヒントの有効範囲は、活動化グループおよび接続です。
例
ENCRYPTION PASSWORD を :hv1 の値に設定します。
SET ENCRYPTION PASSWORD :hv1