現在のセッションのユーザー識別子を設定します。
構文
SET ROLE { rolename | NONE }
説明
このコマンドは、現在の SQL セッションコンテキストのユーザー識別子を rolename
に設定します。 SET ROLE
コマンドを実行すると、指定したロールが SQL コマンドに対して持つ特権がチェックされます。
指定された rolename
は、現在のセッションユーザーのロールである必要があります。
注記
このコマンドを使用して、ユーザーの特権を追加または制限します。 セッションユーザーロールにINHERITS
属性がある場合、すべてのロールで SET
ROLE
コマンドを実行する権限が自動的に割り当てられます。 この場合、SET ROLE
コマンドは、セッションユーザーとユーザーの他のロールに割り当てられているすべての特権を削除します。 指定されたロールで使用可能な特権のみが保持されます。 セッションユーザーロールに
NOINHERITS
属性がある場合、SET
ROLE
はセッションユーザーに割り当てられた特権を削除し、指定されたロールで使用可能な特権を保持します。 スーパーユーザーが SET ROLE
コマンドを実行してユーザーロールを非スーパーユーザーロールに設定すると、スーパーユーザーはスーパーユーザー権限を失います。
例
次のコマンドを実行して、ユーザー mary のロールを admins に設定します。
SET ROLE admins;
次のコマンドを実行して、ユーザーのロールを mary に戻します。
SET ROLE NONE;