「projectA_%」という名前のすべてのデータベースに対して同じ権限を持つユーザー「projectA」を作成したい
私はその可能性を知っていますが、MySQLは私の構文が好きではありません:
grant all on 'projectA\_%'.* to 'projectA'@'%';
構文で一重引用符の代わりにバックティックを使用すると、うまく機能するように見えます:
grant all on `projectA\_%`.* to `projectA`@`%`;
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';
データベース名にはバックティックが必要です
編集:アンダースコアはエスケープされます。
MySQLの [〜#〜] grant [〜#〜] ドキュメントに従って:
グローバルレベルまたはデータベースレベルで特権を付与するGRANTステートメントでデータベース名を指定する場合、「_」および「%」ワイルドカードを使用できます。これは、たとえば、データベース名の一部として「_」文字を使用する場合、GRANTステートメントで「\ _」として指定して、ユーザーが一致する追加のデータベースにアクセスできないようにする必要があることを意味しますワイルドカードパターン。たとえば、GRANT ... ON `foo\_bar`。* TO ....