Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除少数数据库外,所有数据库上的Mysql授权提供程序_Mysql - Fatal编程技术网

除少数数据库外,所有数据库上的Mysql授权提供程序

除少数数据库外,所有数据库上的Mysql授权提供程序,mysql,Mysql,我有一个dev-MySQL服务器,上面有很多数据库,其中大多数都在不断地变化 我需要向特定用户授予对所有数据库的完全访问权限,并且只对其中两个数据库进行读取访问—这些数据库是从另一台服务器复制的 我不想显式地授予每个数据库的完全权限,因为列表会不断变化,维护起来会很痛苦 我尝试了“全部授予”,然后只授予对数据库的使用权,但对所有内容优先授予“全部” 这里有实现目标的好方法吗?您可以运行下面的SQL语句,它将生成SQL语句来执行授权,然后只运行它们。在本例中,db1和db2是要从用户中排除的DB,

我有一个dev-MySQL服务器,上面有很多数据库,其中大多数都在不断地变化

我需要向特定用户授予对所有数据库的完全访问权限,并且只对其中两个数据库进行读取访问—这些数据库是从另一台服务器复制的

我不想显式地授予每个数据库的完全权限,因为列表会不断变化,维护起来会很痛苦

我尝试了“全部授予”,然后只授予对数据库的使用权,但对所有内容优先授予“全部”


这里有实现目标的好方法吗?

您可以运行下面的SQL语句,它将生成SQL语句来执行授权,然后只运行它们。在本例中,db1和db2是要从用户中排除的DB,而某个_用户就是您为其进行授权的用户

SELECT concat(concat('grant all on ',SCHEMA_NAME), ' to some_user') AS `Database`
  FROM INFORMATION_SCHEMA.SCHEMATA
where schema_name not in ('db1','db2')

我不知道如何在不授予每个数据库的priv的情况下实现这一点,但至少通过这种方式,您可以自动生成必要的命令。

我在另一篇文章中看到了此解决方案,但这不太适合。。。数据库每天都会被创建和删除,所以我需要经常运行它以保持所有内容都是最新的。我想我将不得不求助于拥有全局写入权限。。。