この記事では、MySQL®でユーザーを作成および編集する方法を説明します。
-
クラウドサーバーにログインします。
-
次のコマンドを実行してMySQLにログインします。
mysql -u root -p
MySQLのrootパスワードの入力を求められます(これはCloud Serverのrootパスワードと同じではないことに注意してください)。
次のコマンド例に示すように、新しいユーザーの作成とユーザーのパスワードの設定を同時に行うことができます。これにより、username test
のユーザーが作成されます。 :
CREATE USER 'test'@'localhost' IDENTIFIED BY 'newpassword';
次に、権限をフラッシュする必要があります。これにより、user
が再読み込みされます。 MySQLのテーブル。ユーザーを追加または編集するたびに、この手順を実行する必要があります。
次の例は、特権をフラッシュするために使用するコマンドを示しています。
FLUSH PRIVILEGES;
Done.
Permissions - Select
この段階で、新しいユーザー(test
)権限が設定されておらず、何もできません。 SELECT
を割り当てて、権限の設定を開始することをお勧めします 使用可能なすべてのデータベースに対する(読み取り専用)権限。次のコマンドを実行して、select権限を付与できます。
GRANT SELECT ON * . * TO 'test'@'localhost';
Permissions - All
新しいデータベースを作成し、test
を許可します 次の例に示すように、レコードを作成、読み取り、更新、および削除できるように、フルアクセス権を持っている必要があります。
CREATE DATABASE mytestdb;
Now we have the database and the user, we can assign the privileges:
GRANT ALL PRIVILEGES ON `mytestdb` . * TO 'test'@'localhost';
注 :データベース名を囲むバッククォートを含める必要があります。
これは、Webアプリケーションのユーザーとデータベースを設定するときに使用する可能性のあるアクセス許可のタイプです。ユーザーは他のデータベースにアクセスする必要はありません。
次のコマンドを実行して、特権をフラッシュします。
FLUSH PRIVILEGES;
設定した権限が正しく機能することを確認するには、次のコマンドを実行して、新しいユーザーとしてMySQLにログインします。
mysql -u test -p
プロンプトが表示されたら、test
のパスワードを入力します ユーザー。
test
としてログインした後 ユーザーは、次のコマンドを実行して新しいデータベースを作成してみてください。
CREATE DATABASE mytestdb2;
次のエラーメッセージが表示されます。
ERROR 1044 (42000): Access denied for user 'test'@'localhost' to database 'mytestdb2'
このエラーは、test
が原因で発生します ユーザーはALL PRIVILEGES
しか持っていません 「mytestdb」データベースの場合、およびSELECT
他のすべての特権。
ユーザーを削除する必要がある場合、プロセスはデータベースの削除に似ています。次の例は、test
を削除する方法を示しています ユーザー:
DROP USER 'test'@'localhost';
注 :このアクションを実行するには、rootユーザーとしてMySQLにログインする必要があります。