TiDB ダッシュボードのユーザー管理

TiDB ダッシュボードは、TiDB と同じユーザー権限システムとサインイン認証を使用します。 TiDB SQLユーザーを制御および管理して、TiDB ダッシュボードへのアクセスを制限できます。このドキュメントでは、 TiDB SQLユーザーが TiDB ダッシュボードにアクセスするために必要な最小限の権限について説明し、最小限の権限を持つ SQL ユーザーを作成する方法と RBAC を介して承認する方法を例示します。

TiDB SQLユーザーを制御および管理する方法の詳細については、 TiDB ユーザー アカウント管理を参照してください。

必要な権限

  • 接続された TiDBサーバーでセキュリティ拡張モード (SEM)が有効になっていない場合に TiDB ダッシュボードにアクセスするには、SQL ユーザーに次のすべての権限が必要です。

    • 処理する
    • データベースを表示
    • 設定
    • DASHBOARD_CLIENT
  • 接続された TiDBサーバーでセキュリティ拡張モード (SEM)が有効になっている場合に TiDB ダッシュボードにアクセスするには、SQL ユーザーに次のすべての権限が必要です。

    • 処理する
    • データベースを表示
    • 設定
    • DASHBOARD_CLIENT
    • RESTRICTED_TABLES_ADMIN
    • RESTRICTED_STATUS_ADMIN
    • RESTRICTED_VARIABLES_ADMIN
  • TiDB ダッシュボードにサインインした後にインターフェイスの構成を変更するには、SQL ユーザーに次の権限も必要です。

    • システム変数_管理者

ノート:

ALL PRIVILEGESSUPERなどの高い権限を持つユーザーも、TiDB ダッシュボードにサインインできます。したがって、最小権限の原則に従うために、意図しない操作を防ぐために必要な権限のみを持つユーザーを作成することを強くお勧めします。これらの権限の詳細については、 権限管理を参照してください。

以下に示すように、SQL ユーザーが前述の権限要件を満たしていない場合、ユーザーは TiDB ダッシュボードへのサインインに失敗します。

insufficient-privileges

例: TiDB ダッシュボードにアクセスするための最小限の権限を持つ SQL ユーザーを作成する

  • 接続された TiDBサーバーでセキュリティ拡張モード (SEM)が有効になっていない場合、TiDB ダッシュボードにサインインできる SQL ユーザーdashboardAdminを作成するには、次の SQL ステートメントを実行します。

    CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '<YOUR_PASSWORD>';
    GRANT PROCESS, CONFIG ON *.* TO 'dashboardAdmin'@'%';
    GRANT SHOW DATABASES ON *.* TO 'dashboardAdmin'@'%';
    GRANT DASHBOARD_CLIENT ON *.* TO 'dashboardAdmin'@'%';
    
    -- To modify the configuration items on the interface after signing in to TiDB Dashboard, the user-defined SQL user must be granted with the following privilege.
    GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'dashboardAdmin'@'%';
    
  • 接続された TiDBサーバーでセキュリティ拡張モード (SEM)が有効になっている場合は、最初に SEM を無効にしてから、次の SQL ステートメントを実行して、TiDB ダッシュボードにサインインできる SQL ユーザーdashboardAdminを作成します。ユーザーを作成したら、SEM を再度有効にします。

    CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '<YOUR_PASSWORD>';
    GRANT PROCESS, CONFIG ON *.* TO 'dashboardAdmin'@'%';
    GRANT SHOW DATABASES ON *.* TO 'dashboardAdmin'@'%';
    GRANT DASHBOARD_CLIENT ON *.* TO 'dashboardAdmin'@'%';
    GRANT RESTRICTED_STATUS_ADMIN ON *.* TO 'dashboardAdmin'@'%';
    GRANT RESTRICTED_TABLES_ADMIN ON *.* TO 'dashboardAdmin'@'%';
    GRANT RESTRICTED_VARIABLES_ADMIN ON *.* TO 'dashboardAdmin'@'%';
    
    -- To modify the configuration items on the interface after signing in to TiDB Dashboard, the user-defined SQL user must be granted with the following privilege.
    GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'dashboardAdmin'@'%';
    

例: SQL ユーザーに RBAC 経由で TiDB ダッシュボードへのアクセスを許可する

次の例は、 役割ベースのアクセス制御 (RBAC)メカニズムを介して TiDB ダッシュボードにアクセスするためのロールとユーザーを作成する方法を示しています。

  1. TiDB ダッシュボードの権限要件を満たすdashboard_accessのロールを作成します。

    CREATE ROLE 'dashboard_access';
    GRANT PROCESS, CONFIG ON *.* TO 'dashboard_access'@'%';
    GRANT SHOW DATABASES ON *.* TO 'dashboard_access'@'%';
    GRANT DASHBOARD_CLIENT ON *.* TO 'dashboard_access'@'%';
    GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'dashboard_access'@'%';
    
  2. dashboard_accessの役割を他のユーザーに付与し、 dashboard_accessをデフォルトの役割として設定します。

    CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '<YOUR_PASSWORD>';
    GRANT 'dashboard_access' TO 'dashboardAdmin'@'%';
    -- You need to set dashboard_access as the default role to the user
    SET DEFAULT ROLE dashboard_access to 'dashboardAdmin'@'%';
    

上記の手順の後、 dashboardAdmin人のユーザーを使用して TiDB ダッシュボードにサインインできます。

TiDB ダッシュボードにサインインする

TiDB ダッシュボードの権限要件を満たす SQL ユーザーを作成すると、このユーザーを使用して TiDB ダッシュボードにログイン対 1 でアクセスできます。

エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.