执行'SELECT INTO OUTFILE'时,对于错误访问被拒绝,mysqldump的正确权限是什么?

Joe*_*Joe 11 mysql windows mysqldump

备份用户具有BackupAdmin角色和所有权限(对象权限,DDL,GRANT).

cmd> mysqldump --routines=TRUE --tab=C:\tmp -h localhost -u backup -pbackup schemalocal
cmd> mysqldump: Got error: 1045: Access denied for user 'backup'@'%' (using password: YES) when executing 'SELECT INTO OUTFILE'
Run Code Online (Sandbox Code Playgroud)

使其工作的唯一方法是为备份帐户提供DBA角色,但这是一个安全风险,因此我只想给它提供必要的权利.他们是谁?

Ran*_*eed 17

您需要该FILE权限才能被允许使用SELECT...INTO OUTFILE,这似乎是mysqldump --tab用于生成以制表符分隔的转储的用途.

此权限是全局的,这意味着它只能被授予" ON *.*":

GRANT FILE ON *.* TO 'backup'@'%';
Run Code Online (Sandbox Code Playgroud)