mysql - 如何防止用户访问特定模式?

标签 mysql schema privileges

我有一个为我创建的服务器。 它上面有一个名为“test”的模式。

我已经使用 root 用户登录,并创建了一个名为“WEB”的新模式。

create schema WEB;

我现在想做的是让一个用户只能看到那个新模式。

所以我创建了一个这样的用户:

create user webtestuser identified by 'webtestuser';

grant select, insert, update, delete on WEB.* to webtestuser;

问题是当我用新用户登录时,我仍然可以看到“测试”架构。即使当我对用户“全部撤销”时,该架构仍然可见。

我在这里遗漏了什么吗?

谢谢!

最佳答案

默认情况下,mysql 附带了一些用于定义测试模式的授权。它们对所有用户都是ALL ON test,对所有用户也是ALL ON test\_%(test\_% 匹配test_foo, test_123)

由于它们的定义方式,我看不到使用 REVOKE ... FROM 语法删除这些授权的方法,因此您必须使用以下内容:

DELETE FROM mysql.db WHERE Db IN("test","test\_%") AND User="" AND Host="%";
FLUSH PRIVILEGES;

关于mysql - 如何防止用户访问特定模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926713/

相关文章:

postgresql - 跨所有 postgresql 模式更改表

schema - 如何从 icCube 中的 Builder Schema 文件自动生成立方体和维度设计?

php - 删除带有索引的大型 MySQL 表的性能

php - 用于查找正文中带有双斜杠的内部 URL 的 MySQL 正则表达式

mysql - FIND IN SET 不适用于 PDO

mysql - 最好使用什么 SQL 权限来满足最流行的 CMS 的要求

python - 在 Python 脚本中提升权限

php - 在 Kohana 加入 OR

database - Silverlight 从数据库到数据网格

Ansible非root sudo用户和 "become"权限提升