允许db_datareader运行任何查询的危险?

时间:2015-02-16 12:53:00

标签: sql-server

在某个网站上有报告系统。该系统基于运行存储在数据库中的SQL查询。这些查询通过db_datareader用户执行。通常,这些查询由站点管理员编写。假设攻击者设法访问站点管理员帐户并可以向报告系统添加他喜欢的任何查询,那么他是否可以作为db_datareader用户执行任何危险的查询? (危险我指的是可以帮助攻击者获得对服务器的控制权或获得对数据库的SA访问权限的东西。)

如果有这样的查询,我可以采取哪些步骤来阻止报告db用户(具有db_datareader角色的用户)执行它们?

1 个答案:

答案 0 :(得分:2)

具有db_datareader角色的用户只能对数据库中的表和视图发出SELECT查询,而不能发出其他类型的查询。

因此,虽然恶意用户可能能够查看您不希望他看到的某些数据,但他无法根据您的定义做任何危险的事情。