アンドロイド

mysqlユーザーアカウントを作成して特権を付与する方法

目次:

Anonim

MySQLは、最も人気のあるオープンソースのリレーショナルデータベース管理システムです。 MySQLサーバーでは、ユーザーがデータベースにアクセスして管理できるように、多数のユーザーアカウントを作成し、適切な特権を付与できます。

このチュートリアルでは、MySQLユーザーアカウントを作成し、権限を付与する方法について説明します。

あなたが始める前に

MySQLまたはMariaDBサーバーがシステムにインストールされていることを前提としています。

すべてのコマンドは、rootまたは管理ユーザーとしてMySQLシェル内で実行されます。 ユーザーアカウントを作成し、それらの特権を定義するために必要な最小限の特権は CREATE USER および GRANT です。

MySQLシェルにアクセスするには、次のコマンドを入力し、プロンプトが表示されたらMySQLルートユーザーのパスワードを入力します。

mysql -u root -p

新しいMySQLユーザーアカウントを作成する

MySQLのユーザーアカウントは、ユーザー名とホスト名の部分で構成されます。

新しいMySQLユーザーアカウントを作成するには、次のコマンドを実行します。

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password'; プレースホルダー値 newuser を目的の新しいユーザー名に置き換え、プレースホルダー値 newuser をユーザーパスワードに user_password ます。

上記のコマンドでは、ホスト名の部分が localhost に設定されています。つまり、ユーザーはlocalhost(つまり、MySQLサーバーが実行されているシステム)からのみMySQLサーバーに接続できます。

別のホストからのアクセスを許可するには、ホスト名の部分( localhost )をリモートマシンのIPで変更します。 たとえば、IP 10.8.0.5 マシンからのアクセスを許可するには、次を実行します。

CREATE USER 'newuser'@'10.8.0.5' IDENTIFIED BY 'user_password';

任意のホストから接続できるユーザーを作成するには、 '%' ワイルドカードをホスト部分として使用します。

CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';

MySQLユーザーアカウントに特権を付与する

ユーザーアカウントに付与できる特権には複数の種類があります。 MySQLでサポートされている特権の完全なリストは、こちらで確認できます。

最も一般的に使用される権限は次のとおりです。

  • ALL PRIVILEGES –すべての特権をユーザーアカウントに付与します。 CREATE –ユーザーアカウントはデータベースとテーブルを作成できます。 DROP ユーザーアカウントはデータベースとテーブルを削除できます。 DELETE ユーザーアカウントは、特定のテーブルから行を削除できます。 INSERT ユーザーアカウントは特定のテーブルに行を挿入できます。 SELECT –ユーザーアカウントはデータベースを読み取ることができます。 UPDATE ユーザーアカウントはテーブル行を更新できます。

ユーザーアカウントに特定の特権を付与するには、次の構文を使用できます。

GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';

ここではいくつかの例を示します。

  • 特定のデータベースに対するユーザーアカウントへのすべての特権を付与します。

    GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

    すべてのデータベースのユーザーアカウントにすべての特権を付与します。

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

    データベースの特定のテーブルに対するユーザーアカウントへのすべての特権を付与します。

    GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

    特定のデータベース上のユーザーアカウントに複数の権限を付与します。

    GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

MySQLユーザーアカウント権限の表示

特定のMySQLユーザーアカウントに付与されている特権を見つけるには、 SHOW GRANTS ステートメントを使用します。

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

MySQLユーザーアカウントから特権を取り消す

ユーザーアカウントから1つ以上の特権を取り消す構文は、特権を付与する場合とほぼ同じです。

たとえば、特定のデータベースに対するユーザーアカウントからすべての特権を取り消すには、次のコマンドを使用します。

REVOKE ALL PRIVILEGES ON database_name.* FROM 'database_user'@'localhost';

既存のMySQLユーザーアカウントを削除する

MySQLユーザーアカウントを削除するには、 DROP USER ステートメントを使用します。

DROP USER 'user'@'localhost'

上記のコマンドは、ユーザーアカウントとその特権を削除します。

結論

このチュートリアルでは基本事項のみを説明しますが、新しいMySQLユーザーアカウントの作成方法と権限の付与方法を学びたい人にとっては良い出発点になります。

mysql mariadb