SQL Server仅将用户限制为选定的存储过程

时间:2012-03-27 20:37:00

标签: sql-server sql-server-2008 stored-procedures sql-server-2008-r2 sql-authentication

sa帐户最近被锁定在我公司面向公众的数据库中,因为来自未知用户的登录失败次数很多。我在日志中有他们的IP地址,但它吓坏了我。

我更改了所有密码,并且正在加密所有敏感数据。

如何限制SQL Server Authentication用户只能执行某些存储过程,但不执行任何其他操作(看不到任何内容,甚至无法执行Select * From [SomeTable])?

更新

我最终为防火墙设置了IP白名单,创建了随机90个字符的密码,设置db_denydatawriterdb_denydatareader并为特定用户授予Execute特定存储过程。< / p>

2 个答案:

答案 0 :(得分:3)

针对未受保护的sa的攻击始终发生 ,是每个僵尸网络和恶意软件扫描工具包中的一部分。

您可以使用的唯一限制是权限和授权。没有机制限制从登录执行的内容(没有类似于ssh隧道如何仅限于某些命令的机制)。所以它真的归结为权限和强密码。

答案 1 :(得分:0)

将SQL Server打开到Internet是不安全的。最低负责任的解决方案是在其间放置VPN或Web服务器。

话虽如此,您可以从所有组(包括公共组)中删除用户,然后仅授予特定存储过程的权限。如果没有db_datareader,则用户无法select * from SomeTable