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

PolarDB:アカウントと権限の管理

最終更新日:Jun 04, 2024

このトピックでは、アカウントと権限を管理する方法について説明します。

PolarDB-Xのアカウントと権限は、MySQL 5.7と同じ方法で管理されます。 PolarDB-Xは、GRANT、REVOKE、SHOW GRANTS、CREATE USER、DROP USER、SET PASSWORDなどのステートメントをサポートしています。 PolarDB-Xを使用すると、データベースとテーブルに権限を付与できます。 ただし、グローバルまたは列レベルのアクセス許可設定は提供されません。

アカウントの作成

構文

CREATE USER [存在しない場合] ユーザーが「パスワード」で識別されます。

Parameters

userは、'username' @ 'host' 形式のユーザー名とホスト名で構成されるアカウントです。

  • usernameは、作成するユーザー名を指定します。 ユーザー名は次の要件を満たす必要があります。

    • ユーザー名は大文字と小文字を区別する必要があります。

    • ユーザー名は4 ~ 20文字である必要があります。

    • ユーザー名は文字で始まる必要があります。

    • ユーザー名には、文字と数字を使用できます。

  • ホストは、アカウントがデータベースにログオンできるホストを指定します。 アカウントのユーザー名が同じで、ホスト名が異なる場合、アカウントは異なります。 ホスト名は次の要件を満たす必要があります。

    • ホスト名は、1つ以上のIPアドレスを表す値である必要があります。 値には、アンダースコア (_) とワイルドカード (%) を含めることができます。 アンダースコア (_) は文字を表し、ワイルドカード (%) は0文字以上を表します。 ワイルドカードを含むホスト名は、lily @ '30.9.%.% 'やdavid @' % 'などの単一引用符 (') で囲む必要があります。

      説明

    • PolarDB-Xの2つのアカウントがホストのログオンユーザーと一致する場合、ホスト名に長いプレフィックスが含まれているアカウントがログオンアカウントです。 ホスト名のプレフィックスは、ホストのIPアドレスのワイルドカードの前にあるCIDRブロックです。 たとえば、david @ '30.9.12_.234 'とdavid @ '30.9.1%.234' のアカウントがシステムで使用できます。 davidユーザー名を使用して30.9.127.234ホストからデータベースにログインする場合、david @ '30.9.12_.234 'アカウントが使用されます。

    • Virtual Private Cloud (VPC) が有効化されると、ホストのIPアドレスが変更されます。 無効なアカウントおよび権限設定を防ぐために、すべてのIPアドレスと一致するようにホスト名を '%' に設定することを推奨します。

  • passwordは、アカウントのパスワードを指定します。 パスワードは次の要件を満たす必要があります。

    • パスワードは6 ~ 20文字である必要があります。

    • パスワードには、文字、数字、および次の特殊文字を含めることができます: @#$%^& +=

ユーザー 'user1' @ '127.0.0.1 'を作成 '123456' で識別;

「123456' で識別される「user2」 @ 「 % 」が存在しない場合はユーザーを作成します。

アカウントのパスワードを変更する

構文

SET PASSWORD FOR user = PASSWORD('auth_string ')

SETパスワードFOR 'user1' @ '127.0.0.1 '=パスワード ('654321');
説明

SQL文を使用して特権アカウントのパスワードを変更することはできません。

アカウントの削除

構文

DROP USERユーザー;

ドロップユーザー 'user2' @ '%';
説明

SQL文を使用して特権アカウントを削除することはできません。

アカウントに権限を付与する

構文

GRANT特権ON database.table TOユーザー;

Parameters

上記のステートメントでは、privilegesは特定の権限タイプを示します。 次のデータベースアカウントのアクセス許可は、グローバルアクセス許可、データベースレベルのアクセス許可、テーブルレベルのアクセス許可、および列レベルのアクセス許可の降順で表示されます。 PolarDB-Xは、CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECTの8つの基本テーブル権限をサポートしています。

  • テーブルに対してTRUNCATEステートメントを実行するには、テーブルに対するDROP権限が必要です。

  • テーブルに対してREPLACEステートメントを実行するには、テーブルに対するINSERTおよびDELETE権限が必要です。

  • CREATE INDEXおよびDROP INDEXステートメントを実行するには、テーブルに対するINDEX権限が必要です。

  • CREATE SEQUENCEステートメントを実行するには、データベースレベルのCREATE権限が必要です。

  • DROP SEQUENCEステートメントを実行するには、データベースレベルのDROP権限が必要です。

  • ALTER SEQUENCEステートメントを実行するには、データベースレベルのALTER権限が必要です。

  • テーブルに対してINSERT ON DUPLICATE UPDATEステートメントを実行するには、テーブルに対するINSERT権限とUPDATE権限が必要です。

GRANT SELECT,UPDATE ON 'db1'.* TO 'user1' @ '127.0.0.1 ';
説明

SQL文を使用して特権アカウントを承認することはできません。

アカウントの権限を表示する

構文

SHOW GRANTS [ユーザー向け];
説明

current_user() 関数を指定して、現在のユーザーのユーザー名を表示できます。

は 'user1' @ '127.0.0.1 'のためのGRANTSを表示します。+ ------------------------------------------------------ +
| 'USER1' @ '127.0.0.1 'のGRANTS |
+ ------------------------------------------------------ +
| GRANT USAGE ON *.* TO 'user1' @ '127.0.0.1 '|
| 選択を許可し、db1. * に 'user1' @ '127.0.0.1' を更新 |
+ ------------------------------------------------------ +

current_user() のプレゼントを表示します。+ ------------------------------------------------------ +
| 'USER1' @ '127.0.0.1 'のGRANTS |
+ ------------------------------------------------------ +
| GRANT USAGE ON *.* TO 'user1' @ '127.0.0.1 '|
| 選択を許可し、db1. * に 'user1' @ '127.0.0.1' を更新 |
+ ------------------------------------------------------ + 

アカウントの権限を取り消す

構文

REVOKE特権ON database.table FROMユーザー;

db1. * '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 '|
+ ---------------------------------------------- + 
説明

SQL文を使用して特権アカウントを再利用することはできません。