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

LinuxでMySQLユーザー権限を確認する方法

任意のオペレーティングシステムへのMySQLの最初の/新規インストールでは、rootユーザーのみがデフォルトのデータベースユーザーと見なされます。最初のデータベーストランザクション/アクティビティは、rootユーザーのみが実行します。

したがって、MySQLデータベースにアクセスする必要のあるユーザーがrootユーザーのクレデンシャルを介してエントリを取得することは理想的ではありません。ルートユーザーアクセスはデータベース管理者に予約する必要があります。データベース管理者は、ルートユーザーの資格情報を使用してデータベースユーザーを作成し、さまざまなデータベースクエリを実行する権限を付与します。

また、データベース管理者が MySQLにアクセスするためにrootユーザーを使用しないようにすることも理想的な方法です。 データベースを作成しますが、代わりに別のユーザーを作成し、このユーザーにrootユーザーと同じアクセス権限と実行権限を付与します。

この記事ガイドは、 MariaDBに最適です。 、 MySQL Enterprise Edition 、および MySQL Community Edition ユーザー。 MySQLユーザー権限を確認する方法を示すために、最初に、さまざまなMySQL権限を持つさまざまなテストユーザーを作成します。

新しいMySQLユーザーを作成する

まず、 MySQLへのrootアクセスを取得します 次のコマンドを使用して、Linuxターミナルからデータベースを作成します:

$ mysql -u root -p

MySQLユーザーを作成するためのコマンド構文は次のとおりです。

CREATE USER 'username'@'localhost' IDENTIFIED BY 'your_user_password';

上記の使用例は、ローカルマシンにインストールされているMySQLに適用されます。リモートマシン/サーバーを使用している場合は、「username」@「localhost」を置き換える必要があります ‘username’ @’remote_machine_ip_address’

ホスト名またはIPアドレスを指定せずにMySQLがインストールされているシステムに接続できるユーザーが必要な場合は、次のコマンド構文に従ってください。

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';  

ここで、複数のMySQLデータベースユーザーを作成しましょう。

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';  
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';  
CREATE USER 'user3'@'%' IDENTIFIED BY 'password3';  

これらのユーザーはデモを目的としているため、実稼働環境用に強力なデータベースユーザーパスワードを作成することを検討してください。

新しいMySQLユーザーに権限を付与する

次のステップは、これらの作成されたデータベースユーザーに異なるロール(ユーザー特権)を割り当てることです。これらのユーザー権限は、さまざまなデータベースユーザーが実行できるデータベースアクションに関連しています。

これらの権限を次のように分類できます:

  • すべての特権 :この権限を割り当てられたユーザーは、すべてのデータベースロールを実行できます。
  • 挿入 :この権限を割り当てられたユーザーは、データベーステーブルの行データを挿入できます。
  • 削除 :この権限を割り当てられたユーザーは、データベーステーブルの行データを削除できます。
  • 作成 :この権限を割り当てられたユーザーは、存在しないデータベースとテーブルを作成できます。
  • ドロップ :この役割を割り当てられたユーザーは、既存のデータベースとテーブルを削除できます。
  • 選択 :この権限を割り当てられたユーザーは、データベース情報を読み取ることができます。
  • 更新 :この権限を割り当てられたユーザーは、データベーステーブルの行データを変更できます。
  • 付与オプション :この権限を割り当てられたユーザーは、他のデータベースユーザーアカウントの権限を変更できます。

たとえば、 user1を付与する場合 すべてのデータベースとテーブルに対するすべての権限をrootユーザーのようにするには、次のコマンドを実行します。

GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost';

user2を付与する場合 特定のデータベースのすべてのデータベーステーブルに対するすべての権限(例: mysql )、コマンドを実行します:

GRANT ALL PRIVILEGES ON mysql.* TO 'user2'@'localhost';

user3を付与する場合 新しいMySQLユーザーのみを作成する特権の場合、次のコマンドを実行します:

GRANT INSERT ON mysql.user TO 'user3'@'%';

MySQLでのユーザー権限の確認

ユーザーのデータベース権限を確認するには、コマンド構文を参照してください:

SHOW GRANTS FOR username;

これらの3人のユーザー権限を確認するには:

SHOW GRANTS FOR user1@localhost;
SHOW GRANTS FOR user2@localhost;
SHOW GRANTS FOR user3;

ユーザーが割り当てた特権を取り消すには、コマンド構文を参照してください:

REVOKE permission_type ON database.table FROM 'username'@'hostname'; 

例;

REVOKE INSERT ON mysql.user FROM user3;

[あなたも好きかもしれません:Linux用のMySQLデータベースコマンドのチートシート]

この記事で、MySQLユーザー権限について知っておくべきことをすべて理解できました。


Linux
  1. LinuxでユーザーのSudo権限を設定する方法

  2. LinuxでMySQLのバージョンを確認する方法

  3. LinuxでMySQLのバージョンを確認する方法

  1. LinuxでMySQLのバージョンを確認する方法

  2. MySQLデータベースを修復する方法

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

  1. LinuxでMySQLデータベースをインポートおよびエクスポートする方法

  2. KaliLinuxでroot権限をユーザーに提供する方法

  3. LinuxでMySQLルートユーザーパスワードをリセットする方法