たとえば「mydb」というデータベースを作成しました。
CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;
今ではどこからでもデータベースにログインできますが、テーブルを作成することはできません。
そのデータベースと (将来的には) テーブルにすべての権限を付与する方法。 'mydb' データベースにテーブルを作成できません。常に次のエラーが発生します:
CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
ベストアンサー1
GRANT ALL PRIVILEGES
ON mydb.*
TO 'myuser'@'%'
WITH GRANT OPTION;
これは私が「スーパー ユーザー」権限を作成する方法です (ただし、通常はホストを指定します)。
重要な注意点
この回答はアクセスの問題を解決できますが、WITH GRANT OPTION
MySQLユーザーを作成して他のユーザーの権限を編集する。
GRANT OPTION 権限を使用すると、自分が所有する権限を他のユーザーに付与したり、他のユーザーから削除したりすることができます。
セキュリティ上の理由から、このタイプのユーザーアカウントは、一般の人がアクセスできるプロセス(Webサイトなど)には使用しないでください。データベース権限のみを持つユーザーを作成するそのような用途のためです。