用户和权限限制用户使用资源
【摘要】 30.9 限制用户使用资源在MySQL中,GRANT语句不仅可以用来创建用户,为用户授权和修改用户的权限,而且还可以用来限制MySQL用户使用的资源。例如,可以限制每个用户每小时的查询和更新次数、每小时执行的连接次数和同时建立的连接次数等。30.9.1 限制用户使用资源示例例如,为binghe_test用户授予goods数据库上的查询和更新权限,并且每小时的查询次数最多为100,每小时的更新...
30.9 限制用户使用资源
在MySQL中,GRANT语句不仅可以用来创建用户,为用户授权和修改用户的权限,而且还可以用来限制MySQL用户使用的资源。例如,可以限制每个用户每小时的查询和更新次数、每小时执行的连接次数和同时建立的连接次数等。
30.9.1 限制用户使用资源示例
例如,为binghe_test用户授予goods数据库上的查询和更新权限,并且每小时的查询次数最多为100,每小时的更新次数最多为20,使用binghe_test用户最多同时有10个并发连接。
mysql> GRANT SELECT, UPDATE ON goods.* TO 'binghe_test'@'localhost'
-> WITH MAX_QUERIES_PER_HOUR 100
-> MAX_UPDATES_PER_HOUR 20
-> MAX_USER_CONNECTIONS 10;
Query OK, 0 rows affected, 1 warning (0.00 sec)
SQL语句执行成功,查看binghe_test用户的资源限制情况。
mysql> SELECT user, host, max_questions, max_updates, max_user_connections
-> FROM mysql.user WHERE user = 'binghe_test' AND host = 'localhost';
+-------------+-----------+---------------+-------------+----------------------+
| user | host | max_questions | max_updates | max_user_connections |
+-------------+-----------+---------------+-------------+----------------------+
| binghe_test | localhost | 100 | 20 | 10 |
+-------------+-----------+---------------+-------------+----------------------+
1 row in set (0.00 sec)
可以看到,binghe_test用户每小时的查询次数最多为100,每小时的更新次数最多为20,使用binghe_test用户最多同时有10个并发连接。
30.9.2 修改用户的资源限制
将binghe_test用户每小时的查询次数限制修改为200,将每小时的更新次数限制修改为50。
mysql> GRANT USAGE ON *.* TO 'binghe_test'@'localhost'
-> WITH MAX_QUERIES_PER_HOUR 200
-> MAX_UPDATES_PER_HOUR 50;
Query OK, 0 rows affected, 1 warning (0.00 sec)
SQL语句执行成功,查看binghe_test用户的资源限制情况。
mysql> SELECT user, host, max_questions, max_updates, max_user_connections
-> FROM mysql.user WHERE user = 'binghe_test' AND host = 'localhost';
+-------------+-----------+---------------+-------------+----------------------+
| user | host | max_questions | max_updates | max_user_connections |
+-------------+-----------+---------------+-------------+----------------------+
| binghe_test | localhost | 200 | 50 | 10 |
+-------------+-----------+---------------+-------------+----------------------+
1 row in set (0.00 sec)
可以看到,binghe_test用户每小时的查询次数限制已经被修改为200,每小时的更新次数限制已经被修改为50。
30.9.3 解除用户的资源限制
删除用户的资源限制时,只需要将相应的资源限制设置为0即可。例如,删除binghe_test的资源限制。
mysql> GRANT USAGE ON *.* TO 'binghe_test'@'localhost'
-> WITH MAX_QUERIES_PER_HOUR 0
-> MAX_UPDATES_PER_HOUR 0
-> MAX_USER_CONNECTIONS 0;
Query OK, 0 rows affected, 1 warning (0.00 sec)
SQL语句执行成功,查看binghe_test用户的资源限制情况。
mysql> SELECT user, host, max_questions, max_updates, max_user_connections
-> FROM mysql.user WHERE user = 'binghe_test' AND host = 'localhost';
+-------------+-----------+---------------+-------------+----------------------+
| user | host | max_questions | max_updates | max_user_connections |
+-------------+-----------+---------------+-------------+----------------------+
| binghe_test | localhost | 0 | 0 | 0 |
+-------------+-----------+---------------+-------------+----------------------+
1 row in set (0.00 sec)
binghe_test用户的资源限制值都为0,说明已经解除了binghe_test用户的资源限制。
注意:为了不影响用户的权限,修改或删除用户的资源限制时,需要使用如下形式的SQL语句。
mysql> GRANT USAGE ON *.* TO '用户名'@'主机名'
-> WITH MAX_QUERIES_PER_HOUR 查询次数
-> MAX_UPDATES_PER_HOUR 修改次数
-> MAX_USER_CONNECTIONS 连接次数
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)