同时创建MySQL数据库和授予特权

时间:2020-05-15 15:29:00

标签: mysql

问题:我有一个程序,可以通过创建活动数据库的副本来备份数据库,然后为它加时间戳记。

query = `CREATE DATABASE IF NOT EXISTS myDb-${dateStamp} `;

稍后我尝试使用与创建数据库时相同的凭据删除该新创建的数据库,结果为Access denied for user

是否存在可以执行以下操作的查询?

  • 使用用户帐户创建table \ Schema
  • 同时授予创建用户的全部权限
  • 创建用户不具有root MySQL特权

1 个答案:

答案 0 :(得分:1)

启用多重查询并将其全部写入查询变量中。以分号分隔,将按顺序执行它们。但绝不会同时发生

query = "CREATE DATABASE IF NOT EXISTS myDb-${dateStamp};  GRANT ALL ON  myDb-${dateStamp}.* TO 'ROOT'@'localhost'; CREATE USER 'TESTUSER'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my-strong-password-h'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON  myDb-${dateStamp}.* TO 'TESTUSER'@'localhOST'; USE myDb-${dateStamp}; CREATE TABLE Tablex SELECT * FROM Table1;"

以此类推。

Mysql不介意单查询或多查询,只要像php这样的基本语言就可以处理多查询。

或者您一个一个地做