メインコンテンツまでスキップ

SET ROLE

ロールの設定

説明

ロールとその関連する権限を有効化し、現在のセッションで操作を行うためのコマンドです。

このコマンドは v3.0 からサポートされています。

構文

-- 特定のロールを有効化し、そのロールで操作を行う。
SET ROLE <role_name>[,<role_name>,..];
-- 特定のロールを除いて、ユーザーの全てのロールを有効化する。
SET ROLE ALL EXCEPT <role_name>[,<role_name>,..];
-- ユーザーの全てのロールを有効化する。
SET ROLE ALL;

パラメーター

role_name: ロール名

使用上の注意

ユーザーは自分に割り当てられたロールのみを有効化することができます。

ユーザーのロールを SHOW GRANTS を使用してクエリすることができます。

現在のユーザーの有効化されているロールをクエリするには SELECT CURRENT_ROLE() を使用します。詳細については、current_role を参照してください。

現在のユーザーのすべてのロールをクエリします。

SHOW GRANTS;
+--------------+---------+----------------------------------------------+
| UserIdentity | Catalog | Grants |
+--------------+---------+----------------------------------------------+
| 'test'@'%' | NULL | GRANT 'db_admin', 'user_admin' TO 'test'@'%' |
+--------------+---------+----------------------------------------------+

db_admin のロールを有効化します。

SET ROLE db_admin;

現在のユーザーの有効化されているロールをクエリします。

SELECT CURRENT_ROLE();
+--------------------+
| CURRENT_ROLE() |
+--------------------+
| db_admin |
+--------------------+

参考

  • CREATE ROLE: ロールを作成します。
  • GRANT: ユーザーまたは他のロールにロールを割り当てます。
  • ALTER USER: ロールを変更します。
  • SHOW ROLES: システムのすべてのロールを表示します。
  • current_role: 現在のユーザーのロールを表示します。
  • DROP ROLE: ロールを削除します。