GNU/Linux >> Linux の 問題 >  >> Linux

新しいMySQLユーザーを追加してアクセス権限を付与する方法

このチュートリアルでは、MySQLに新しいユーザーを追加し、MySQLデータベースにさまざまな種類の権限を付与します。

MySQLサーバーを使用すると、ユーザーがデータベースにアクセスして管理できるように、多数のユーザーアカウントを作成し、適切な権限を付与できます。サーバーにMySQLをインストールしたら、データベースと追加のユーザーアカウントを作成する必要があります。

次のコマンドを実行するには、最初にMySQLrootアカウントでMySQLサーバーにログインする必要があります。

mysql -u root -p
新しいMySQLユーザーを作成する方法

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データベースでさまざまな権限を付与する方法を理解する必要があります。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. UbuntuのユーザーにSudo権限を付与および削除する方法

  2. Sshアクセスで新しいユーザーを作成する方法は?

  3. 日付に X 日を追加して新しい日付を取得するにはどうすればよいですか?

  1. 新しいMySQLユーザーを作成して権限を付与する方法

  2. MariaDBユーザーを作成して特権を付与する方法

  3. 新しいユーザーを作成し、MySQLで権限を付与します

  1. FedoraのユーザーにSudo権限を追加、削除、付与する

  2. UbuntuのユーザーにSudo権限を追加、削除、付与する方法

  3. CentOSのユーザーにSudo権限を追加、削除、付与する