【问题标题】:What privileges should I grant to my InnoDB MySQL user?我应该向我的 InnoDB MySQL 用户授予什么权限?
【发布时间】:2011-08-22 22:02:36
【问题描述】:

我有一个 MySQL 用户(InnoDB 引擎),我想知道为它授予的安全权限是什么? 目前我已经授予它访问特定数据库的权限和这些权限:

SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, CREATE TEMPORARY TABLES

但由于它是 InnoDB,我想知道是否需要显式授予该用户 LOCK TABLES 权限?另外我不确定我是否需要为此授予 CREATE TEMPORARY TABLES 。 你能帮我弄清楚我应该授予哪些特权吗? Hibernate 将有权访问该用户,所以我也想知道什么才能让它正常工作?

【问题讨论】:

    标签: mysql innodb privileges grant


    【解决方案1】:

    您应该授予用户使用系统所需的最低权限。

    为了进行测试,请使用grant all on the database

    在生产时间锁定东西
    但在生产中,您应该只在表格上授予select

    insertupdate 授予用户实际需要在其中添加或更改数据的表。
    Create 是用户几乎不需要的权限。 (除非您希望他们为您设计数据库 :-)
    indexalter 同上,您不希望您的用户使用这种权力。
    create temp tables 可能没问题,如果您的应用会创建临时表。

    【讨论】:

    • 如果您关心性能,授予表级权限不是一个好主意。 MySQL 必须为每个查询检查它们,这与通常每个会话只检查一次的数据库级权限不同。
    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2020-11-22
    • 2014-03-14
    • 1970-01-01
    相关资源
    最近更新 更多