【问题标题】:MySQL Database Permission QuestionMySQL数据库权限问题
【发布时间】:2010-12-10 01:14:57
【问题描述】:

我已经习惯了mysql的用户权限

GRANT ALL PRIVILEGES ON db_base.phonebook TO db_user @'%' IDENTIFIED BY 'db_passwd';

以及其他影响特定用户如何与 mysql 交互的事情。我有一个由我运行的程序创建的数据库,它有自己的权限。我不知道如何编辑该数据库的权限。是的,这措辞很糟糕,所以我给你看这个:

(root@localhost) [mysql]> SELECT host,db,user,select_priv,insert_priv FROM mysql.db;
+------+--------------------+------+-------------+-------------+
| host | db                 | user | select_priv | insert_priv |
+------+--------------------+------+-------------+-------------+
| %    | test               |      | Y           | Y           |
| %    | test\_%            |      | Y           | Y           |
| %    | lux_watertank_pmts | lux  | Y           | N           |
+------+--------------------+------+-------------+-------------+
3 rows in set (0.00 sec)

我想限制访问的test 数据库。如何更改数据库而不是用户的 priv?感谢您的帮助和理解。

【问题讨论】:

    标签: mysql database permissions


    【解决方案1】:

    MySQL 使用分层访问控制模型,即。 e.您可以指定全局、数据库、表甚至列级别的权限。

    我认为您不能完全按照自己的意愿行事 - MySQL 的权限围绕用户帐户进行。通过数据库设置权限意味着权限表必须以相反的方式进行查询,而事实并非如此。我尝试为用户使用 %,但这也不起作用。

    所以我认为您无法解决特定问题。

    至于一般的权限:

    虽然您可以使用 GRANT 语句手动修改它们,但我个人觉得这样做很乏味。相反,我建议您使用来自MySQL GUI Tools 的 MySQL 管理员工具。

    如果您直接修改权限表(可能但不一定推荐),请记住您必须发出 FLUSH PRIVILEGES 命令才能使这些更改生效。

    它将允许您直观地配置权限。我不记得你是否能提前看到GRANT 语句,但你当然可以稍后通过SHOW GRANTS FOR user@'host' 语句查看这些语句。

    如果您以前从未使用过该工具,请注意:您必须转到 工具/选项 菜单并启用“显示全局权限”、“Show Schema Object Privileges" 和 "Show hosts in user list" 以启用对更细粒度权限配置的完全访问权限 - 否则它只会显示全局权限。

    【讨论】:

    • 所以 SHOW GRANTS FOR 'user'@'host' 显示 A 主机上的 A 用户的授权,但不显示独立于用户或主机的数据库的权限。就像你说的那样,分层控制让我很困惑。我可以设置用户/主机权限,但是如何编辑数据库权限?直接编辑mysql.db表?
    • 我不认为你能做到这一点——MySQL 的权限是围绕用户帐户进行的。反过来意味着表格被反过来查询,他们可能不是。我尝试为用户使用 %,但这也不起作用。
    • 根据前两个 cmets 修改了我的答案。
    【解决方案2】:

    我遇到了同样的问题(即想要限制对默认情况下对所有人开放的“测试”数据库的访问)。我能想到的最好办法是从 mysql.db 中删除以下两行并重新启动 mysql。

    | % |测试 | |是 |是 | | % |测试\_% | |是 |是 |

    我还没有尝试过,但我相当肯定它会起作用。还有其他方法吗?

    【讨论】:

    • 手动编辑db 或user 表后,您需要调用FLUSH PRIVILEGES
    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2017-01-02
    • 2017-01-09
    相关资源
    最近更新 更多