允许删除视图但不允许删除表的权限

8

我希望创建一个能够创建和删除视图,但不能删除表格或数据库的用户。这是为了在测试我的视图时进行实验,避免意外删除表格的风险。

MySQL提供了GRANT CREATE VIEW权限,但似乎没有相应的GRANT DROP VIEW权限。 GRANT DROP权限可以用于数据库、表格和视图。

在MySQL中是否可以实现这一点?

1个回答

9

我也一直在研究这个问题,答案似乎是否定的。你可以将DROP限制在一个数据库内的表/视图(或一组LIKE模式匹配的数据库)中。这将确保他们无法删除整个数据库。不幸的是,你不能对表/视图名称进行模式匹配。要么是这些数据库中所有表/视图(*),要么只有明确指定的表/视图。


天啊,我刚刚检查了一下MariaDB,答案仍然是你必须授予DROP权限才能创建视图 - 然后你就可以删除表了。难以置信。我们试图允许数据科学家为只读生产实例构建视图,但是...看来我被迫赋予他们在生产环境中删除表的能力。哇! - J. Gwinner
我尝试了“或一组LIKE模式匹配的数据库”,至少在MariaDB中,GRANT DROP ON MYDATABASE.Views_*或GRANT DROP ON MYDATABASE.Views_%似乎也不起作用。 - J. Gwinner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接