Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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 DATABASE—用户可以删除数据库中的表,但不能删除数据库中的表的权限_Mysql_Sql_Database_Shell_Mariadb - Fatal编程技术网

Mysql DATABASE—用户可以删除数据库中的表,但不能删除数据库中的表的权限

Mysql DATABASE—用户可以删除数据库中的表,但不能删除数据库中的表的权限,mysql,sql,database,shell,mariadb,Mysql,Sql,Database,Shell,Mariadb,我正在建立一个用户有权访问数据库的数据库。问题是我希望这个用户有创建和删除表的权限,但他不应该有创建和删除数据库的能力,即使是分配给他的数据库 我在MariaDB和MySQL的文档中读到,DROP特权适用于数据库、表和视图: 就我而言,我尝试了以下命令: 创建数据库后,我将所有特权授予我的_用户,在这里我看到用户可以在数据库上做任何他想做的事情(甚至删除它)。 命令: 向“我的用户”@“本地主机”授予“我的数据库”上的所有权限*;同花顺特权; 在那之后,我撤销了特权,我试着给我的

我正在建立一个用户有权访问数据库的数据库。问题是我希望这个用户有创建和删除表的权限,但他不应该有创建和删除数据库的能力,即使是分配给他的数据库

我在MariaDB和MySQL的文档中读到,DROP特权适用于数据库、表和视图:

就我而言,我尝试了以下命令:

  • 创建数据库后,我将所有特权授予我的_用户,在这里我看到用户可以在数据库上做任何他想做的事情(甚至删除它)。 命令:
向“我的用户”@“本地主机”授予“我的数据库”上的所有权限*;同花顺特权;
  • 在那之后,我撤销了特权,我试着给我的用户一些特权,但不放弃特权,这是可行的,用户不能放弃数据库,但在数据库中创建一个表之后,他不能放弃它。 命令:
从“我的用户”@“本地主机”撤消“我的数据库”上的所有权限*;同花顺特权;
将“MY_数据库”.*上的SELECT、INSERT、UPDATE、[…]授予“MY_用户”@“本地主机”;同花顺特权;
因此,我想知道是否可以设置规则,或者数据库管理web应用程序、类型Adminer或PHPMyAdmin是否允许我的用户创建和删除数据库中包含的表,而不是数据库本身


提前谢谢你,祝你度过愉快的一天

不幸的是,这似乎是MariaDB中的一个突出缺陷,已经存在了一段时间:


错误通知单中提出的主要问题是,对于那些依赖DROP数据库的用户来说,确保与此问题的向后兼容性将是困难的。*同时能够删除架构的特权。

如果用户能够删除数据库中的所有表,那么不能删除数据库真的有意义吗?表为零的数据库包含的有用数据为零。@Damien_不信者我完全同意,如果用户可以选择从数据库中删除所有表,那么他们也可以删除数据库。现在的问题是,我希望这个用户能够在并且仅当原始数据库已被删除时再次创建数据库。换句话说,用户只有在名称与原始数据库相同且原始数据库已删除时,才有可能创建单个数据库。