4

2つのデータベースの権限を同時に設定しようとしています。私はそれらを2つのステートメントで割り当てることが可能であることを知っています。1つでそれを行う方法はありますか?

私は試した

GRANT ALL PRIVILEGES 
       ON mydb1.*, mydb2.*
       TO 'reader'@'localhost'
       IDENTIFIED BY 'mypassword';

しかし、それは1つのデータベースでしか機能しないようです。

4

3 に答える 3

3

いいえ、できません。GRANT構文図でわかるように。どうやら、ワイルドカードを使用し*.*てすべてのデータベースに付与を適用できますが、私はそうしません。

于 2011-09-14T10:14:03.527 に答える
3

GRANTドキュメント(https://dev.mysql.com/doc/refman/5.7/en/grant.html)から:

およびワイルドカードは、データベースレベルで特権を付与するステートメントでデータベース名を指定するときに許可され_ます。これは、たとえば、データベース名の一部として文字を使用する場合は、ステートメントのように文字を指定して、ユーザーがワイルドカードパターンに一致する追加のデータベースにアクセスできないようにする必要があることを意味します。たとえば、GRANT ... ON%GRANT_\_GRANT`foo\_bar\`.* TO ....

したがって、上記(mydb1およびmydb2)を実行するには、

GRANT ALL PRIVILEGES ON `mydb%`.* TO 'reader'@'localhost';

など(mydb3やmydb_funkytownなどがなく、特権も付与したくない場合)

参照:

于 2018-02-28T18:58:52.530 に答える
0

すべてのデータベースに(を使用して*.*)特権を付与することも、一度に1つに特権を付与することもできますが、一度に2つに付与することはできません。

于 2011-09-14T10:15:59.257 に答える