MySQLデータベースのユーザーに権限(特権と呼ばれる)を付与する方法を見てみましょう
デフォルトでは、構文を使用して新しいMySQLユーザーを作成する場合
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
ユーザーは多くを行うことができません。実際、何もできないと言えます。
データの変更はもちろん、既存のデータベースからデータを読み取ることもできません。また、新しいデータベースを作成することもできません。
ユーザーに何かをさせるには、権限を付与する必要があります それに。
GRANT
を使用してこれを行うことができます コマンド。
GRANT <permission>
を使用できます 、次の権限キーワードを使用します:
-
CREATE
-
DROP
-
DELETE
-
INSERT
-
SELECT
-
UPDATE
ALL PRIVILEGES
GRANT CREATE ON *.* TO '<username>'@'localhost';
特定のデータベースに新しいテーブルを作成する権限をユーザーに付与します
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
特定のデータベースをユーザーに読み取る(クエリする)特権を与える
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';
特定のデータベースの行を挿入、更新、および削除する権限をユーザー
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
GRANT DROP ON <database>.* TO '<username>'@'localhost';
GRANT DROP ON *.* TO '<username>'@'localhost';
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
DROP
を取り消す例 <database>
の特権 :
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
すべての特権を取り消すには、次を実行します:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
次のコマンドを実行すると、1人のユーザーの権限を視覚化できます。
SHOW GRANTS FOR '<username>'@'localhost';