現在のセッションのユーザー識別子を設定します。

構文

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;