在我们的产品中,我们为客户提供了 cli 选项来获取必要的详细信息。
我们有一个脚本,用于调用执行提供的查询并将数据返回给客户的 java 类。脚本名称为执行 ./执行查询"从exposedSchema.employee_view中选择姓名、地址">
我想从安全角度知道是否禁止在选择查询中使用逗号(,)?
我们的计划应该是 允许: ./执行查询"从exposedSchema.employee_view中选择 *" 不允许 ./执行查询"从exposedSchema.employee_view中选择姓名、地址">
其实我想建议你使用
select name, address from exposedSchema.employee_view
而不是
select * from exposedSchema.employee_view
原因有很多。以下是链接的一些关键原因:
在 SQL Server 和任何常见的 SQL 语言中,星号 ( * ) 告知数据库引擎返回表中的所有列。用 在您的查询中"选择 *"是一个坏主意,以及我们不这样做的原因 推荐这是:
安全性 – 如果未经授权的用户访问您的查询并且 返回 *(表示所有列),它可以使每一列都可用 误用。
性能 – 返回 数据只是您需要的列,而不是所有可用列。什么时候 使用"SELECT *",每次运行 语句,因此几乎总是正确的返回速度更快 只是您需要的列,而不是所有列。
困惑 – 作为 事情会随着时间的推移而变化,你真的不能确定一个查询写了 今天使用"SELECT *"将返回易于消化的结果 将来必须使用数据的程序或报表。列 可能会随着时间的推移在表中添加或删除,并且如果您指定 SELECT 查询中的列,您确切地知道哪些列将是 返回。
https://seniordba.wordpress.com/2018/06/11/list-table-columns-names-instead-of-using-select/