# データベースユーザーとロール
+ サポートされている認証プラグイン
  + `mysql_native_password`
  + `caching_sha2_password`
+ ロールベースのアクセスもサポートされています (TiDB Dedicated)
```
// Example of Using Native Password:
CREATE USER example_user1 ~!@IDENTIFIED BY@!~ '<password>';

// Example of Using Caching SHA2 Password:
CREATE USER example_user2 ~!@IDENTIFIED WITH CACHING_SHA2_PASSWORD BY@!~ '<password>';

// Example of Creating a Role:
CREATE ROLE r_test1;

// Example of Granting a Role to a User:
GRANT r_test1 TO example_user1;
SET DEFAULT ROLE 'r_test1' TO example_user1;
```
------------------------------------------------------------------------------
MySQL USERは、データベースに接続してコマンドを発行できるデータベースユーザーです。MySQLのロールは、ユーザーに付与できる、実際に付与できる権限のセットです。USERSに直接権限を付与することもできますが、多くの場合、これらの権限をROLEにグループ化するほうが理にかなっています。

TiDB Cloud では、`mysql_native_password`と`caching_sha2_password` 2つの認証プラグインを使用できます。

ロールは`mysql.user`テーブルに保存され、ロール名のホスト名部分（省略した場合）はデフォルトで`'%'`になります。

`SHOW GRANTS`または`SHOW GRANTS FOR CURRENT_USER()`を使用して、現在のユーザーの権限を確認できます。`SHOW GRANTS`と`SHOW GRANTS FOR CURRENT_USER()`は次の点で異なります。
-` SHOW GRANTS`は、現在のユーザーが有効にしているロールの権限を表示します。
- `SHOW GRANTS FOR CURRENT_USER()`には有効になっているロールの権限が表示されません。

ユーザー認証とロールベースのアクセス制御の詳細については、次のコースを参照します：`https://www.pingcap.com/education/course-tidb-administration/`です。
