MySQLはオープンソースのデータベース管理ソフトウェアで、ユーザーがデータを保存、整理し、後で取得するのに役立ちます。特定のユーザーに、テーブルやデータベース内で特別な意味合いを持つ権限を付与するさまざまなオプションがあります。このチュートリアルでは、いくつかのオプションの概要を説明します。
このチュートリアル全体を通して、ユーザーが入力またはカスタマイズする必要がある部分は ハイライト表示されます。残りの部分は、ほとんどコピー&ペーストができるようになっています。
MySQLのチュートリアルのパート1では、すべてのデータベースへのフルアクセス権を持つrootユーザーとして、MySQLでのすべての編集を行いました。ただし、さらに制限が必要な場合は、カスタム権限を持つユーザーを作成する方法があります。
まず、MySQLシェル内で新しいユーザーを作成してみましょう。
- CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
注: このチュートリアルでMySQLシェル内にユーザーを追加する場合、ユーザーのホストをサーバーのIPアドレスではなく、localhost
として指定します 。localhost
は「このコンピューター」を意味するホスト名で、MySQLはこの特定のホスト名を特別に扱います。 そのホストを持つユーザーがMySQLにログインすると、Unixソケットファイルを使用してローカルサーバーに接続しようとします。したがって、通常、サーバーにSSHで接続する場合、またはローカルmysql
クライアントを実行してローカルMySQLサーバーに接続する場合に、localhost
が使用されます。
この時点ではnewuserは、データベースを操作する権限はありません。実際、newuserが(passwordのパスワードを使用して)ログインしようとしても、MySQLシェルにアクセスできません。
したがって、最初に行うことは、ユーザーに必要な情報へのアクセスを提供することです。
- GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
このコマンドのアスタリスクは、(それぞれ)アクセスできるデータベースとテーブルを示しています。この特定のコマンドを使用すると、ユーザーはすべてのデータベースとテーブルですべてのタスクの読み取り、編集、実行を行うことができます。
この例では、newuserに、データベース内のすべてへのrootのフルアクセス権を付与していることに注意してください。これはMySQLの概念を説明するのに役立ちますが、ほとんどのユースケースでは実用的ではなく、データベースのセキュリティを危険にさらす可能性があります。
新しいユーザーに設定する権限を確定したら、必ずすべての権限をリロードしてください。
- FLUSH PRIVILEGES;
これで、変更が有効になります。
ユーザーが使用できるその他の一般的なアクセス権限一覧を次に示します。
SELECT
コマンドを使用してデータベースを読み取ることができます。特定のユーザーに権限を付与する場合は、次のフレームワークを使用できます。
- GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';
任意のデータベースまたは任意のテーブルへのアクセスを許可する場合は、データベース名またはテーブル名の代わりにアスタリスク(*)を入力してください。
権限を更新または変更するたびに、必ずFlush Privilegesコマンドを使用してください。
権限を取り消す必要がある場合、構文の構造は権限の付与とほぼ同じです。
- REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';
権限を取り消す場合の構文は、権限を付与するときに使用したTO
ではなく、FROM
を使用する必要があることに注意してください。
次のコマンドを実行して、ユーザーの現在の権限を確認できます。
- SHOW GRANTS FOR 'username'@'localhost';
DROPを使用してデータベースを削除する場合と同様に、DROPを使用してユーザーを完全に削除できます。
- DROP USER 'username'@'localhost';
新しいユーザーをテストするには、次のように入力してログアウトします。
- quit
ターミナルで次のコマンドを使用して、再度ログインします。
- mysql -u [username] -p
このチュートリアルを終了すると、MySQLデータベースで新しいユーザーを追加し、さまざまな権限を付与する方法が理解できます。ここから、データベースのさまざまなアクセス許可設定を調べて試してみたり、さらに高度なMySQL設定について詳しく学習することもできます。
MySQLの基本について詳しくは、次のチュートリアルを参照してください。
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.