web-dev-qa-db-ja.com

データベース名にダッシュを使用して、mysqlへのアクセスをユーザーに許可する

残念ながら、ダッシュが含まれているデータベース名があります。 mysqlが構文エラーを報告したときに、そのデータベースへのアクセスを許可するにはどうすればよいですか。

例えば.

GRANT SELECT,INSERT,UPDATE,DELETE ON astpp.* TO 'portal'@'localhost'
IDENTIFIED BY 'Ab7g12Xh35' WITH GRANT OPTION;

動作しますが

GRANT SELECT,INSERT,UPDATE,DELETE ON astpp-eth01.* TO 'portal'@'localhost'
IDENTIFIED BY 'Ab7g12Xh35' WITH GRANT OPTION;

ではない。

どちらもしません:

GRANT SELECT,INSERT,UPDATE,DELETE ON 'astpp-eth01'.* TO 'portal'@'localhost'
IDENTIFIED BY 'Ab7g12Xh35' WITH GRANT OPTION;
7
Matt

Mysqlでは、ANSI_QUOTESが有効になっていない限り、データベースの列名をバッククォート文字でエスケープします。 http://dev.mysql.com/doc/refman/5.0/en/identifiers.html を参照してください。

このようなコマンドを使用してみてください。

grant select,insert,update,delete on `astpp-eth01`.* to 'portal'@'localhost' identified by 'Ab7g12Xh35' with grant option;
19
Zoredache