mysql - 如何强制限制从所有用户的查询返回的行数?

标签 mysql

当任何用户从我们的数据库中进行 SELECT 查询时,我们希望限制返回的行数。当然,您可以手动限制返回查询的行数,但我们希望在所有 SELECT 命令上强制附加类似 limit 10 的内容。用户将只能使用 MySQL CLI 从堡垒主机访问此数据库。 例如:

SELECT * FROM 客户

将返回所有行。在没有用户指定的情况下,我们希望自动将命令变成类似这样的内容,这样他们最多只能返回 10 行:

SELECT * FROM 客户限制 10

实现此所需功能的任何方式都可以(无论是否为附加命令)。这可能吗?

最佳答案

如果您不相信您的用户能够负责任地使用数据库,您可能不应该允许他们通过 mysql cli 直接访问数据库。开发一个报告层,您可以在其中实现此类限制。

如果你坚持使用mysql cli,那么打开--safe-updates选项并配置--select-limit选项。

或者,设置 sql_select_limit通过配置或批处理文件为这些用户设置。

关于mysql - 如何强制限制从所有用户的查询返回的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57731662/

相关文章:

php - 未使用准备好的语句存储的数据

mysql - Django 通用外键与自定义手动字段性能/优化

php - php中如何获取字符串中的特定字符

php - 如何获取类别的所有子级并将它们显示为 mySql 中的树?

mysql - 执行从另一个具有外键且不存在的表中获取数据的查询太慢

MySql.ConnectorNET.Data 与 MySql.Data

mysql - mysql查询时出现小错误

MySQL:将具有parent_id填充的行放在父id之后

php - 如何根据我的要求进行 "INNER JOIN"sql查询

php - PHP : Third column skipped, 中的列,但数据库中的所有数据都在那里