このチュートリアルでは、MySQLに新しいユーザーを追加し、MySQLデータベースにさまざまな種類の権限を付与します。
MySQLサーバーを使用すると、ユーザーがデータベースにアクセスして管理できるように、多数のユーザーアカウントを作成し、適切な権限を付与できます。サーバーにMySQLをインストールしたら、データベースと追加のユーザーアカウントを作成する必要があります。
次のコマンドを実行するには、最初にMySQLrootアカウントでMySQLサーバーにログインする必要があります。
mysql -u root -p
CREATE USER ステートメントは、MySQLデータベースサーバーに新しいユーザーを作成します。 ステートメントの基本的な構文は次のとおりです。
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; 上記の構文では、必ずユーザー名を置き換えてください。 およびパスワード ご希望のユーザー名とパスワードを使用してください。
hostnameを設定します localhostへ ユーザーがローカルホスト(「このコンピューター」を意味する)からのみMySQLサーバーに接続できるようにする場合。ユーザーが任意のホストから接続できるようにする場合は、%を使用します ホスト名としてのワイルドカード。
たとえば、jamesという名前のユーザーを作成します 、およびパスワードMyStrongPass123 次のコマンドを使用します:
CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123'; ただし、このユーザーは、追加の権限が付与されるまで、どのMySQLデータベースも操作できません。
MySQLユーザーに権限を付与する方法
新しいユーザーを正常に作成した直後に、この新しいユーザーに特権を付与できます。ほとんどの場合、アカウントがアクセスする必要のある特定のデータベースに基づいて、MySQLユーザーに権限を付与します。
ユーザーアカウントに付与できる特権には複数の種類があります。 MySQLでサポートされている特権の完全なリストはここにあります。
ALL PRIVILEGES–ユーザーアカウントにすべての権限を付与します。-
ALTER–ユーザーはテーブルまたはデータベースの構造を変更できます。 -
CREATE–ユーザーアカウントはデータベースとテーブルを作成できます。 -
DROP–ユーザーアカウントはデータベースとテーブルを削除できます。 -
DELETE–ユーザーアカウントは特定のテーブルから行を削除できます。 -
INSERT–ユーザーアカウントは、特定のテーブルに行を挿入できます。 -
SELECT–ユーザーアカウントはデータベースの読み取りを許可されています。 -
UPDATE–ユーザーアカウントはテーブル行を更新できます。
ユーザーにMySQLデータベースへのアクセスを提供し、権限を付与するには、通常、次のGRANTを使用する必要があります。 ステートメント:
GRANT permission_type ON privilege_level TO 'username'@'hostname';
ユーザーにすべての特権を付与するにはjames jamesdbで データベースの場合は、次のコマンドを使用します:
GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';
次のように入力して、SELECTのみを付与します およびINSERT ユーザーへの特権james jamesdbで データベース:
GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';
グランドSELECT ユーザーへの特権james salariesのみ employeesの表 データベース:
GRANT SELECT ON employees.salaries TO 'james'@'localhost'; 場合によっては、別の「スーパーユーザー」を作成することもできます。 MySQLルートユーザーと同じ権限を持つユーザーを付与するには 、次のコマンドを使用して、ユーザーにグローバル権限を付与します james localhost経由で接続する :
GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION; MySQLユーザーアカウントのパスワードを変更する
jamesのパスワードを変更するとします。 localhostから接続するユーザー NewStrongPass123へ 、次のSQLステートメントを実行する必要があります:
ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';
上記のSQLステートメントでは、必ずjamesを変更してください。 データベースユーザーとlocalhost ユーザーのホストと。
Show MySQLのユーザーの権限
MySQLでは、SHOW GRANTSを使用できます ユーザーのすべての付与情報を表示するコマンド。いくつか例を見てみましょう。
次のステートメントでは、SHOW GRANTSを使用しています 現在のユーザーに付与されている特権を表示するステートメント:
SHOW GRANTS;
MySQLユーザーの助成金を表示するには、SHOW GRANTSを使用できます ユーザー名を指定している間:
SHOW GRANTS FOR 'james'@'localhost'; MySQLユーザーアカウントから権限を取り消す
ユーザーアカウントから1つ以上の特権を取り消すための構文は、特権を付与する場合とほとんど同じです。
ユーザーから特権を取り消す必要がある場合james jamesdbで データベースで、権限を付与するときに使用したものと同様の構文を適用します。
REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost'; MySQLからユーザーを削除
特権を取り消す代わりに、そのユーザーも削除することをお勧めします。したがって、次のコマンドを使用してデータベースユーザーを削除できます。
DROP USER 'james'@'localhost';
上記のコマンドは、ユーザーのjamesを削除します そのすべての特権と一緒に。
最後のステップとして、権限を更新または変更するたびに、必ずFLUSH PRIVILEGESを使用してください。 コマンド。
FLUSH PRIVILEGES; このチュートリアルを完了すると、新しいユーザーを追加し、MySQLデータベースでさまざまな権限を付与する方法を理解する必要があります。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。