5.9.1 SET ROLE文の形式と規則
(1) 機能
現在ロールを設定します。現在ロールとは,現在有効とするロールのことをいいます。
(2) 使用権限
指定したロール名のロール利用権限を持つユーザが,現在有効とするロールを設定できます。
(3) 形式
SET ROLE {ロール名|NONE}
(4) オペランド
(a) {ロール名|NONE}
- ロール名
-
現在ロールに設定するロールのロール名を指定します。
定義済のロールを指定してください。
- NONE
-
現在ロールを設定しない場合に指定します。
(5) 共通規則
-
現在ロールは一つだけ設定できます。
-
現在ロールには,このSQLの実行者がロール利用権限を直接持つロールだけを設定できます。
-
現在ロールとして設定中のロールは,アクセス権限,又はロール利用権限を変更することはできません。
-
トランザクション実行中は現在ロールを変更することができません。トランザクション実行中にSET ROLE文を実行するとSQLエラーとなります。
-
現在ロールが存在する場合にSET ROLE文を実行した場合,現在ロールが更新されます。また,SET SESSION AUTHORIZATION文を実行した場合,現在ロールが設定なしに更新されます。
-
SET ROLE 文をサポートするクライアント種別を次に示します。
クライアント種別
サポート状況
埋込み型UAP
×
Type4 JDBCドライバ
JDBC2.0版
×
JDBC4.0版
○
JDBC4.3版
○
ODBCドライバ
×
HiRDBデータプロバイダ for .NET Framework
×
OLE DBプロバイダ
×
Type2 JDBCドライバ
×
SQLJ
×
- (凡例)
-
○:サポート
×:未サポート
execute,executeUpdate,executeBatchメソッドを使用してSET ROLE文を実行できます。PreparedStatement,CallableStatementでは実行できません。
(6) 使用例
現在ロールにロール(ROLEA)を設定します。
SET ROLE ROLEA