MySQL特权 – DROP表,而不是数据库

有人可以帮我在这里的特权。 我需要创build一个可以在数据库中删除表的用户,但不能删除数据库?

从我从MySQL文档中理解的内容,你不能简单地这样做:

DROP权限使您能够删除(删除)现有数据库,表和视图。 从MySQL 5.1.10开始,为了在分区表上使用ALTER TABLE … DROP PARTITION语句,还需要DROP特权。 从MySQL 5.1.16开始,TRUNCATE TABLE需要DROP权限(在此之前,TRUNCATE TABLE需要DELETE权限)。

有任何想法吗?


哦,而且正在使用的dabase是5.0.45。

我有一个相同的问题:(我认为,如果用户可以删除所有的表,然后空的数据库是没有价值的

如果用户可以删除一个表,那么他可以删除所有的表,从而有效地删除数据库。 所以DROP TABLE和DROP DATABASE的独立权限没有意义。

如果你想为用户授予一个权限,只删除数据库中的一个指定的表,这可能是有用的,但MySQL不支持它。

那么这个问题已经有6年了,什么也没有发生。

http://bugs.mysql.com/bug.php?id=18938

我们可能不得不求助于像MariaDB(一个分支的MySQL)的function…

  1. 创build用户
  2. 给所述数据库的用户提供删除权限

我只是添加这个作为其他答案看起来更像是对我的评论…简短的回答是没有。 一些替代scheme是:

  • 考虑将表放在另一个数据库中,如果你真的需要一些用户完全控制一些表而不是其他的表。 更多特权用户可以跨多个数据库进行查询。

  • 允许DELETE和ALTER,这样至less可以根据需要删除和/或重新定义数据。 除了下降,你需要的一切。

既不是特别方便,但如果你的需要是重要的,你可以做到这一点。