すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ロール権限の管理

最終更新日:Jun 04, 2024

このトピックでは、ロール権限管理の構文について説明し、構文の使用方法の例を示します。

ネイティブMySQL 8.0と互換性のあるPolarDB-Xのロールベースの権限制御の詳細については、「ロールベースの権限制御」をご参照ください。

ロールの作成

構文:

CREATE ROLE role [, role]...
ロール名のコンポーネントは、ユーザー名のコンポーネントと同じです。 各ロール名は、nameパラメーターとHostパラメーターの値で構成されます。
  • Nameパラメーターを空のままにすることはできません。
  • Hostパラメーターの値は、次のルールを満たす必要があります。
    • Hostパラメーターの値はIPアドレスである必要があり、アンダースコア (_) とパーセント記号 (%) を使用できます。 アンダースコア (_) およびパーセント記号 (%) はワイルドカード文字として使用されません。
    • Hostパラメーターが空の場合、パーセント記号 (%) を使用してホストを指定します。 パーセント記号 (%) は、完全一致メソッドを使用して照会できます。 パーセント記号 (%) はワイルドカード文字として使用されません。

例:

ROLE 'role_ro' @ '%' 、'role_write' を作成します。

ロールの削除

構文:

DROP ROLE role [、role] ...

例:

DROP ROLE 'role_ro' @ '%';

ロールに権限を付与する

ロールに権限を付与

構文:

GRANT priv_type [, priv_type] ... ON priv_level TO role [、role]... [GRANTオプション付き] 

例:

すべての特権をdb1. * に 'role_write';
ユーザーにロールを付与

構文:

GRANT role [、role] ...
    user_or_role [, user_or_role] ...
    [アドミンオプション付き] 
追加情報:
  • 上記のステートメントを実行する前に、次の要件を満たす必要があります。
    • ユーザーにCREATE_USER権限があります。
    • ユーザーには、ロールに対する管理者権限があります。
  • ステートメントにWITH ADMIN OPTIONオプションが含まれている場合、ロールが付与されているユーザーには、ロールに対する管理者権限が付与されます。
  • ロールがユーザーに割り当てられたら、ロールを有効にする必要があります。 これにより、ユーザーはロールの必要な権限を持つことができます。 アクティブ化するロールを指定するには、SET DEFAULT roleおよびSET ROLEステートメントを実行する必要があります。

例:

GRANT 'role_write' TO 'user1' @ '127.0.0.1 ';
デフォルトロールの設定

構文:

SETデフォルトロール
    {NONE | ALL | role [, role ] ...}
    TO user [, user ] ... 
上記のステートメントを実行する前に、次の要件を満たす必要があります。
  • ステートメント内のロールは、GRANTステートメントを実行することによって、指定されたユーザーに割り当てられます。
  • ユーザーにロールが割り当てられるか、CREATE_USER権限が付与されます。

例:

SET DEFAULT ROLE 'role_write' TO 'user1' @ '127.0.0.1 ';
接続のロールを設定

構文:

SET ROLE {
    DEFAULT
  | なし
  | すべて
  | ALL EXCEPT role [, role ] ...
  | role [, role ] ...
} 
説明
  • SET ROLE DEFAULTステートメントを実行する場合、アクティブなロールはSET DEFAULT roleステートメントで指定されたロールです。
  • この構文でアクティブ化されたロールは、現在の接続を使用するユーザーに対してのみ有効です。

例:

SET ROLE 'role_write';;

ロールの権限の表示

構文:

ショーグラント
    [FOR user_or_role
        [USING role [、role] ...] 

例:

は 'role_write' @ '%' のGRANTSを表示します。+ --------------------------------------------------- +
| 'ROLE_WRITE' @ '%' のGRANTS |
+ --------------------------------------------------- +
| GRANT USAGE ON *.* TO 'role_write' @ '%' |
| すべての特権をdb1. * に付与 'role_write' @ '%' |
+ --------------------------------------------------- +

「role_write」を使用した「user1」 @ 「127.0.0.1」のプレゼントを表示します。+ ------------------------------------------------------ +
| 'USER1' @ '127.0.0.1 'のGRANTS |
+ ------------------------------------------------------ +
| GRANT USAGE ON *.* TO 'user1' @ '127.0.0.1 '|
| すべての特権をdb1. * から 'user1' @ '127.0.0.1 'に付与 |
| GRANT 'role_write' @ '%' TO 'user1' @ '127.0.0.1 '|
+ ------------------------------------------------------ +

-- user1アカウントを使用してセッションを実行します。
SELECT CURRENT_ROLE();
+ ------------------ +
| CURRENT_ROLE() |
+ ------------------ +
| 'role_write' @ '%' |
+ ------------------ + 

ロールの取り消し

ロールの権限を取り消す

構文:

REVOKE priv_type [, priv_type] ... ON priv_level FROM role [、role]... 

例:

db1. * 「role_write' 」からすべての特権を更新します。'role_write' @ '%' のGRANTSを表示します。+ ---------------------------------------- +
| 'ROLE_WRITE' @ '%' のGRANTS |
+ ---------------------------------------- +
| GRANT USAGE ON *.* TO 'role_write' @ '%' |
+ ---------------------------------------- + 
ユーザーの権限を取り消す

構文:

REVOKE role [、role ] ... FROM user_or_role [, user_or_role ] ... 

例:

は 'user1' @ '127.0.0.1 'のためのGRANTSを表示します。+ ----------------------------------------------- +
| 'USER1' @ '127.0.0.1 'のGRANTS |
+ ----------------------------------------------- +
| GRANT USAGE ON *.* TO 'user1' @ '127.0.0.1 '|
| GRANT SELECT ON db1. * TO 'user1' @ '127.0.0.1 '|
| GRANT 'role_write' @ '%' TO 'user1' @ '127.0.0.1 '|
+ ----------------------------------------------- +

REVOKE 'role_write' FROM 'user1' @ '127.0.0.1 ';

「user1」 @ 「127.0.0.1」のプレゼントを表示します。+ ---------------------------------------------- +
| 'USER1' @ '127.0.0.1 'のGRANTS |
+ ---------------------------------------------- +
| GRANT USAGE ON *.* TO 'user1' @ '127.0.0.1 '|
| GRANT SELECT ON db1. * TO 'user1' @ '127.0.0.1 '|
+ ---------------------------------------------- +