役割を設定する

SET ROLEステートメントは、現在のセッションでロールを有効にするために使用されます。ロールを有効にした後、ユーザーはロールの権限を使用できます。

あらすじ

SetRoleStmt:

SetRoleStmt

SetRoleOpt:

SetRoleOpt

SetDefaultRoleOpt:

SetDefaultRoleOpt

ユーザー'u1'@'%'と3 'r3'@'%'の役割を作成し'r2'@'%''r1'@'%' 。これらの役割を'u1'@'%'に付与し、 'r1'@'%'をデフォルトの役割'u1'@'%'として設定します。

CREATE USER 'u1'@'%'; CREATE ROLE 'r1', 'r2', 'r3'; GRANT 'r1', 'r2', 'r3' TO 'u1'@'%'; SET DEFAULT ROLE 'r1' TO 'u1'@'%';

'u1'@'%'としてログインし、次のSET ROLEのステートメントを実行して、すべての役割を有効にします。

SET ROLE ALL; SELECT CURRENT_ROLE();
+----------------------------+ | CURRENT_ROLE() | +----------------------------+ | `r1`@`%`,`r2`@`%`,`r3`@`%` | +----------------------------+ 1 row in set (0.000 sec)

次のSET ROLEのステートメントを実行して、 'r2''r3'を有効にします。

SET ROLE 'r2', 'r3'; SELECT CURRENT_ROLE();
+-------------------+ | CURRENT_ROLE() | +-------------------+ | `r2`@`%`,`r3`@`%` | +-------------------+ 1 row in set (0.000 sec)

次のSET ROLEのステートメントを実行して、デフォルトの役割を有効にします。

SET ROLE DEFAULT; SELECT CURRENT_ROLE();
+----------------+ | CURRENT_ROLE() | +----------------+ | `r1`@`%` | +----------------+ 1 row in set (0.000 sec)

次のSET ROLEのステートメントを実行して、有効なすべての役割をキャンセルします。

SET ROLE NONE; SELECT CURRENT_ROLE();
+----------------+ | CURRENT_ROLE() | +----------------+ | | +----------------+ 1 row in set (0.000 sec)

MySQLの互換性

このステートメントは、MySQL8.0の機能であるロールと完全に互換性があると理解されています。互換性の違いは、GitHubでは問題を介して報告である必要があります。

も参照してください

このページは役に立ちましたか?