Emi*_*lás 75 mysql database mysqldump grant database-backups
我有一个名为dump的MySQL用户,其中包含以下权限:
GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%'
Run Code Online (Sandbox Code Playgroud)
我想使用dump用户转储所有数据(包含的触发器和过程).我用以下方式调用mysqldump:
mysqldump -u dump -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
Run Code Online (Sandbox Code Playgroud)
除了触发器之外,转储文件一切正常,它们都丢失了 !!
如果我使用root MySQL用户尝试mysqldump,则会正确转储触发器:
mysqldump -u root -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
Run Code Online (Sandbox Code Playgroud)
所以,我想这是一个perms问题... 我的转储 MySQL用户正确执行完全转储所需的额外资金是多少?
Jan*_*nes 104
假设完全转储你也意味着VIEWs和EVENTs,你需要:
GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...;
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `myschema`.* TO 'dump'@'%';
Run Code Online (Sandbox Code Playgroud)
如果你有VIEW执行函数的s,那么很遗憾你也需要EXECUTE.
我自己的问题是:SELECT如果我只想进行无数据转储,为什么还需要?
我找到了我需要的额外GRANT !!
GRANT TRIGGER ON `myschema`.* TO 'dump'@'%'
Run Code Online (Sandbox Code Playgroud)
在这里您可以参考官方文档:http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_trigger
TRIGGER权限启用触发操作.您必须拥有此表的权限才能为该表创建,删除或执行触发器.
| 归档时间: |
|
| 查看次数: |
60310 次 |
| 最近记录: |