重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

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

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

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

必要な特権

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

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

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

    • SYSTEM_VARIABLES_ADMIN

ノート:

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で使用できます。