【发布时间】:2012-03-29 22:25:26
【问题描述】:
root以外的用户是否可以创建数据库?
GRANT SELECT, CREATE ON *.* TO 'myguy'@'thatmachine' IDENTIFIED BY PASSWORD '*12057DFA2BFBD8760D4788735B1C3E26889D7ECE' |
GRANT ALL PRIVILEGES ON `db1`.* TO 'myguy'@'thatmachine'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myguy'@'thatmachine'
我想知道这里缺少什么特权?还有,为什么第一行有密码?
更新
让我进一步澄清我的问题的重点。我有两台数据库机器,源和目标。源机器上有很多客户数据库。我需要将这些源数据库移动到另一台目标机器上。
数据库采用 mysqldump'ed .sql 文件的形式,这些文件是从源到目标的 sftp。目标用户,而不是 root,必须从每个 .sql 文件在本地重新创建数据库,执行一些操作,然后删除数据库。
如果不授予目标用户在 *.* 上的全局权限,我无法找到将这些权限授予目标用户的方法,这实际上使该用户与 root 一样危险。
【问题讨论】:
-
有趣。好的,这是一个想法。不要在目标机器上使用 mysql,而是使用专门用于此事务的备用数据库。 SQLite,或者类似的东西。这样,他的权限与任何完全可操作的数据库无关,它们只能用于临时数据库和操作。您可能需要更改一些脚本,或者不需要更改,但这样会更安全。为这个特定的专长做一小部分控制,然后在他完成后将其无效。可能是一些额外的工作 - 但它会解决问题。
标签: mysql