首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中限制每个用户的带宽、存储和访问

如何在mysql中限制每个用户的带宽、存储和访问
EN

Stack Overflow用户
提问于 2014-07-02 12:12:58
回答 2查看 1.6K关注 0票数 1

我需要限制基于用户的mysql数据库访问权限。因此,要求如下。

  1. 用户可以在MySQL实例中拥有专用存储,并且不能超过它。
  2. 限制用户在一天中的一段时间内访问
  3. 限制每个用户每小时的读写更新查询数
  4. 限制每个用户的带宽。

如何在MySQL服务器中实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2014-07-03 11:43:42

1.用户可以在MySQL实例中拥有专用存储,并且他不能超过它()

据我所知,没有直接的方法来控制每个用户的mysql实例的存储。您可以像akuzminsky说的那样这样做,或者如果您有供用户使用的特殊表,则可以使用:

代码语言:javascript
复制
ALTER TABLE tablename MAX_ROWS=1000000 AVG_ROW_LENGTH=nnn;

欲了解更多信息,请参阅:

  1. http://dev.mysql.com/doc/refman/5.7/en/limits-frm-file.html
  2. http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html

2.限制用户在一天内的访问时间()

我不知道直接的方法。我可以想象出一个运行类似于问题3的comand的cronjob,但应该是在您真的需要它并且没有其他解决方案的情况下:)

3.限制每个用户每小时的读写更新查询数

您可以使用GRANT命令的以下参数:

代码语言:javascript
复制
GRANT ALL ON databasename.* TO 'username'@'server'
       WITH MAX_QUERIES_PER_HOUR 20
       MAX_UPDATES_PER_HOUR 10
       MAX_CONNECTIONS_PER_HOUR 5
       MAX_USER_CONNECTIONS 2;

(记得在后面运行FLUSH PRIVILEGES; )

欲了解更多信息,请参阅:

http://dev.mysql.com/doc/refman/5.7/en/user-resources.html

4.限制每个用户的带宽

应该是数据库和应用服务器之间的一件事。

票数 1
EN

Stack Overflow用户

发布于 2014-07-02 14:23:30

这里有一些想法。

  1. MySQL没有给您设置磁盘使用配额的方法。您可以做的是检查每个数据库使用了多少空间,并通过其他方法强制执行配额: 选择sum(data_length+index_length),从information_schema.tables中选择TABLE_SCHEMA = 'user_x_db‘
  2. 我也不知道
  3. 在max_updates中设置mysql.user
  4. 我也不知道
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24530816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档