はじめに
MySQL Linux用のデータベースアプリケーションであり、人気のあるLAMPスタック(Linux、Apache、MySQL、PHP)の一部です。 MySQLのインストールには、rootユーザーまたは特定のユーザーアカウントを介して管理するオプションが含まれています。
セキュリティ上の理由から、一般的には特定のユーザーとしてデータを作成して処理することをお勧めします。
このチュートリアルでは、MySQLユーザーアカウントを作成し、それらの権限と特権を管理する方法を学びます。
前提条件
- MySQLまたはMariaDBがインストールされ実行されているLinuxサーバー
- MySQLルートユーザー資格情報へのアクセス
- ターミナルウィンドウ/コマンドラインへのアクセス(Ctrl-Alt-T / Ctrl-Alt-F2)
新しいMySQLユーザーを作成する方法
1.新しいMySQLユーザーを作成する前に、ターミナルウィンドウを開き、rootユーザーとしてMySQLシェルを起動する必要があります。これを行うには、次のコマンドを入力します。
sudo mysql –u root –p
2.このアカウントのrootパスワードを入力し、Enterキーを押します。
プロンプトが変わり、 mysql>にいることを示します。 シェル。
3.次に、次のコマンドを使用して新しいMySQLユーザーを作成します。
CREATE USER 'username' IDENTIFIED BY 'password';
ユーザー名を置き換えます およびパスワード 選択したユーザー名とパスワードを使用します。
または、データベースをホストしているマシンを指定してユーザーを設定することもできます。
- MySQLを使用するマシンで作業している場合は、[メール保護]を使用してください ユーザーを定義します。
- リモートで接続している場合は、 [email protected] _addressを使用してください 、 ip_addressを置き換えます MySQLをホストしているリモートシステムの実際のアドレスを使用します。
したがって、コマンドは次のようになります。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
または
CREATE USER 'username'@'ip_address' IDENTIFIED BY 'password';
次のコマンドを使用して、任意のマシンから接続できるユーザーを作成することもできます。
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
MySQLで権限を付与する方法
新しいアカウントでログインする前に、ユーザーの権限を設定していることを確認してください。
アクセス許可は、ユーザーがデータベースで実行できるアクションです。ユーザーに付与する権限の量に応じて、次の権限の1つ、複数、またはすべてをユーザーに付与できます。
- すべての特権: ユーザーアカウントはデータベースへのフルアクセス権を持っています
- 挿入: ユーザーはテーブルに行を挿入できます
- 削除: ユーザーはテーブルから行を削除できます
- 作成: ユーザーはまったく新しいテーブルとデータベースを作成できます
- ドロップ: ユーザーはテーブルとデータベース全体を削除(削除)できます
- 選択: ユーザーはselectコマンドにアクセスして、データベース内の情報を読み取ることができます
- 更新: ユーザーはテーブルの行を更新できます
- 付与オプション: ユーザーは他のユーザーアカウント権限を変更できます
ユーザーアカウントに特権を付与するために使用される基本的な構文は次のとおりです。
GRANT permission_type ON database.table TO 'username'@'localhost';
たとえば、MySQLユーザーに挿入権限を付与するには 次のコマンドを実行します:
GRANT INSERT ON *.* TO 'username'@'localhost';
必要に応じて特権レベルを置き換えることができます。付与する特権ごとにコマンドを実行します。
特定のデータベースへのユーザーのアクセスを制限する場合は、ドットの前にそのデータベースに名前を付けます。同様に、次のコマンドのように、ドットにちなんで名前を付けることで、特定のテーブルへのユーザーのアクセスを制限できます。
GRANT INSERT *database_name.table_name* TO 'username'@'localhost';
MySQLユーザー管理
このセクションは、ユーザーアカウントが保持している特権を一覧表示し、ユーザーから特権を奪い、ユーザーアカウントを完全に削除するのに役立ちます。また、ルートMySQLユーザーアカウントからログアウトし、作成したばかりのアカウントで再度ログインする方法についても説明します。
MySQLユーザーアカウントを一覧表示する方法-権限
ユーザーが保持している現在のすべての特権を表示するには:
SHOW GRANTS FOR username;
MySQLでデータベースのすべての権限を付与する方法
すべてのデータベースのMySQLユーザーにすべての権限を付与する 次のコマンドを使用します:
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
ただし、特定ののユーザーアカウントにすべての権限を付与することもできます 次のコマンドを使用したデータベース:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
データベースタイプから特定のテーブルに対するすべての権限をユーザーアカウントに付与するには:
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
MySQLユーザーアカウントの権限を取り消す
特定のユーザーから特権を取り戻すには、 REVOKE
を使用します 指図。これはGRANTコマンドと同様に機能し、基本的な構文は次のとおりです。
REVOKE permission_type ON database.table TO 'username'@'localhost';
ユーザーアカウント全体を削除する
MySQLユーザーアカウントを削除するには、次のコマンドを使用します:
DROP USER 'username'@'localhost';