MySQLのユーザーと特権の管理は、認証、承認、およびアカウンティングの目的で非常に重要です。 MySQL 8.0以降、2種類のデータベースユーザー権限があります。
- 静的権限-サーバーに組み込まれている、SELECT、ALTER、SUPER、USAGEなどの一般的なグローバル、スキーマ、および管理者権限。
それぞれのユーザーでデータベーススキーマを作成することは、データベースサーバーとしてMySQLの使用を開始するための最初のステップです。 MySQLをデータストアとして使用するほとんどのアプリケーションでは、アプリケーションが意図したとおりに機能する前に、このタスクを実行する必要があります。アプリケーションで使用するには、通常、MySQLユーザーはスキーマレベルで完全な特権(ALL PRIVILEGES)を持つように構成されます。つまり、アプリケーションで使用されるデータベースユーザーは、割り当てられたデータベースに対して任意のアクションを実行できます。
このブログ投稿では、MySQLWorkbenchとClusterControlのMySQLデータベースユーザー管理機能を比較対照します。
MySQLWorkbench-データベースユーザー管理
MySQL Workbenchの場合、すべてのユーザー管理機能は[管理]->[管理]->[ユーザーと権限]にあります。左側に既存のユーザーのリストが表示され、右側に選択したユーザーの認証と承認の構成セクションが表示されます。
MySQLは30を超える静的特権をサポートしており、理解して覚えるのは簡単ではありません。モール。 MySQL Workbenchには、いくつかの事前設定された管理ロールがあります。これは、データベースユーザーに十分な特権を割り当てるときに非常に役立ちます。たとえば、mysqldumpを使用してバックアップアクティビティを実行するために特別にMySQLユーザーを作成する場合は、BackupAdminロールを選択すると、それに応じて関連するグローバル権限がユーザーに割り当てられます。
新しいデータベースユーザーを作成するには、[アカウントの追加]ボタンをクリックします[ログイン]タブで必要な情報を入力します。 [アカウント制限]タブで、リソース制限をさらに追加できます。ユーザーがデータベーススキーマのみを対象としており、管理者の役割(厳密にはアプリケーションでの使用)を目的としていない場合は、[管理者の役割]タブをスキップして、[スキーマの権限]を構成するだけです。
[スキーマ特権]セクションで、[エントリの追加]をクリックしてデータベーススキーマを選択(または一致するパターンを定義)できます。次に、[すべて選択]ボタンを押して、[すべての特権]オプションステートメントと同様のすべての権利(GRANT OPTIONを除く)を許可します。
データベースユーザーは、申請するまでMySQLサーバーに作成されません。 [適用]ボタンをクリックして変更を変更します。
ClusterControl-データベースとプロキシのユーザー管理
ClusterControlデータベースとユーザー管理は、MySQLWorkbenchが提供するものよりも少し簡単です。 MySQL Workbenchは開発者にとってより使いやすいものですが、ClusterControlは、SysAdminsとDBAが関心を持っていることに重点を置いており、MySQLの役割と特権に既に精通している人向けの一般的な管理関連のものに似ています。
データベースユーザーを作成するには、[管理]->[スキーマとユーザー]->[ユーザー]->[新しいユーザーの作成]に移動します。次のユーザー作成ウィザードが表示されます:
ClusterControlでユーザーを作成するには、必要なすべてのフィールドを1つに入力する必要があります同様の結果を達成するために数回のクリックを伴うMySQLWorkbenchとは異なり、ページ。 ClusterControlは、「REQUIRE SSL」構文を使用したユーザーの作成もサポートしており、特定のユーザーがSSL暗号化チャネルを介してのみアクセスできるようにします。
ClusterControlは、クラスター内のすべてのデータベースユーザーに関する集約ビューを提供し、特定のユーザーを探すためにすべての個々のサーバーにログインする必要をなくします。
特権ボックスをロールオーバーすると、に割り当てられているすべての特権が表示されます。このユーザー。 ClusterControlは、非アクティブなユーザー、最後のサーバーの再起動以降に使用されていないユーザーアカウントのリストも提供します。
上記のリストは、どのユーザーが存在する価値があるかを明確にまとめたものです。 、ユーザーをより効率的に管理できるようにします。次に、DBAは、非アクティブなデータベースユーザーがまだアクティブである必要があるかどうかを開発者に尋ねることができます。そうでない場合、ユーザーアカウントはロックまたは削除される可能性があります。
ProxySQLロードバランサーが間にある場合は、ProxySQLに独自のMySQLユーザー管理があり、ProxySQLを通過できるようになっていることをご存知かもしれません。一般的なMySQLユーザー構成と比較すると、さまざまな設定と変数があります。たとえば、デフォルトのホストグループ、デフォルトのスキーマ、トランザクションの永続性、早送りなどです。 ClusterControlは、ProxySQLデータベースユーザーを管理するためのグラフィカルユーザーインターフェイスを提供し、プロキシユーザーとデータベースユーザーを一度に管理するエクスペリエンスと効率を向上させます。
ProxySQL管理ページを介して新しいデータベースユーザーを作成すると、ClusterControlは自動的に作成しますProxySQLとMySQLの両方の対応するユーザー。ただし、ProxySQLからMySQLユーザーを削除すると、対応するデータベースユーザーはMySQLサーバーに残ります。
ClusterControlは複数のデータベースベンダーをサポートしているため、他のデータベースサーバーと同様のユーザーエクスペリエンスを得ることができます。 ClusterControlは、一度に複数のホストでデータベースユーザーを作成することもサポートします。これにより、作成されたユーザーがクラスター内のすべてのデータベースサーバーに存在するようになります。 ClusterControlは、ユーザーアカウントを一覧表示するときに、必要なすべての情報を一覧表示ページで確認できる、よりクリーンな方法を備えています。ただし、ユーザー管理にはアクティブなサブスクリプションが必要であり、コミュニティエディションでは使用できません。 MySQLが実行できるすべてのプラットフォーム、特にCentOS、RHEL、Debian、Ubuntuなどの特定のLinuxディストリビューションのみをサポートしているわけではありません。
MySQL Workbenchの最大の利点は、無料であり、スキーマの管理および管理と一緒に使用できることです。開発者やDBAにとってより使いやすいように構築されており、MySQLサーバーを所有および保守しているOracleチームによって構築および支援されるという利点があります。また、ほとんどの入力フィールド、特に認証や特権管理などの重要な部分についての説明とともに、はるかに明確なガイダンスを提供します。事前設定された管理者の役割は、ユーザーがサーバー上で実行する必要のある作業に基づいて、ユーザーに一連の特権を付与するための優れた方法です。欠点は、すべての管理接続が1つのエンドポイントMySQLサーバーに合わせて調整されているため、MySQLWorkbenchはクラスターフレンドリーなツールではありません。したがって、クラスター内のすべてのユーザーの集中ビューを提供するわけではありません。また、SSL強制によるユーザーの作成もサポートしていません。
これらのツールはどちらも、BACKUP_ADMIN、BINLOG_ADMIN、SYSTEM_VARIABLES_ADMINなどの新しいMySQL8.0動的特権構文をサポートしていません。
次の表は、簡単に比較できるように、両方のツールの注目すべき機能を示しています。
| MySQL Workbench | ClusterControl |
MySQLサーバーでサポートされているOS |
|
|
MySQLベンダー |
|
|
|
| |
| | |
| | |
| | |
SSLを使用してユーザーを作成 | | |
| | |
| | |
MySQL8.0の動的特権 | | |
| | |
これらのブログ投稿が、MySQLデータベースとユーザーの管理に最適なツールを決定するのに役立つことを願っています。