mysqlでは、ユーザが所有者データベースを作成してどのように書き込むことができますか?

私はすべて

私は新しいデータベースを作成する権限をユーザに割り当てることができました。

root> GRANT CREATE ON *.* TO 'newuser'@'localhost';
newuser> create database newdb;
newuser> Query OK, 1 row affected (0.00 sec)

今、私は 'newuser'によって作成されたばかりのnewdbがnewuser自身によって書き込み可能であったと思います。

newuser> CREATE TABLE newtable ( id INT );
Query OK, 0 rows affected (0.00 sec)
newuser> INSERT INTO newtable (id) VALUES (1);
ERROR 1142 (42000): INSERT command denied to user 'offique'@'localhost' for table 'newtable'

私は解決策なしで(同じユーザーで...)特権を設定しようとします:-(

newuser> GRANT ALL PRIVILEGES ON newdb.* TO 'newuser'@'localhost';
ERROR 1044 (42000): Access denied for user 'newuser'@'localhost' to database 'newdb'

何か案が?

どうもありがとう!

1
GRANT CREATE ON *。* TO 'newuser' @ 'localhost'; あなたがlocalhostから接続するときに newuser にCREATE特権を与えます。彼にすべての特権を与えようとしましたか?
追加された 著者 Dor,
GRANT コマンドを使用した後で FLUSH PRIVILEGES しましたか? dev.mysql.com/doc/refman/5.0/en/flush html
追加された 著者 dakdad,
newuserは CREATE 権限しか持たないので、newuserに権限を追加するときはroot権限が必要です。したがって、 root> newdb。* TO 'newuser' @ 'localhost' WITH GRANT OPTION; はnewuserにnewdbのすべての特権を与えているはずです。
追加された 著者 dakdad,
ありがとうdakしかし、それは役に立たないだろう... GRANTコマンドはうまくいきません...(ERROR 1044(42000):アクセスが拒否されました)
追加された 著者 Roberto,
それで...新しいユーザーが自分でデータベースを作成することは不可能で、rootユーザー(特権を与えるユーザー)に渡さずに書き込むことができますか?
追加された 著者 Roberto,

1 答え

今、newuserによって作成されたばかりのnewdbは、newuser自身によって書き込み可能であったと思います。

この場合、データベースレベルでINSERT特権を与えるだけで十分です。

GRANT INSERT ON *.* TO 'newuser'@'localhost';

新しいユーザーはそれ自体を行う権利がないため、 'root'アカウントから付与する必要があります。


GRANT INSERT ON newdb.* TO 'newuser'@'localhost';
1
追加された
@ロベルトああ、ごめんなさい。見逃した。私は答えを変えた。
追加された 著者 Devart,
デヴァートに感謝します。しかし、この場合、newuserはすべてのデータベースにアクセスできます。私は、newuserはデータベース作成にのみアクセスできると思います。
追加された 著者 Roberto,
ありがとうDevart :-)
追加された 著者 Roberto,