44

'projectA_%'という名前のすべてのデータベースに対して同じ権限を持つユーザー'projectA'を作成したい

私はその可能性を知っていますが、MySQLは私の構文が好きではありません:

grant all on 'projectA\_%'.* to 'projectA'@'%';

参照:http ://dev.mysql.com/doc/refman/5.1/en/grant.html

4

3 に答える 3

85

構文で一重引用符の代わりにバックチックを使用すると、問題なく機能するように見えます。

grant all on `projectA\_%`.* to `projectA`@`%`;
于 2010-04-19T15:29:38.987 に答える
13
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';

データベース名にはバックチックが必要です

編集:アンダースコアがエスケープされるようになりました。

于 2013-01-18T06:42:22.403 に答える
7

MySQLのGRANTドキュメントによると:

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

于 2014-07-11T14:02:36.773 に答える