授予用户使用数据库名称中的破折号访问mysql

不幸的是,我有一个带有破折号的数据库名称.
mysql报告语法错误时,如何授予对该数据库的访问权限.

例如

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

工作,但

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

才不是.

也不是:

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

解决方法

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;

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...