sa
帐户最近被锁定在我公司面向公众的数据库中,因为来自未知用户的登录失败次数很多。我在日志中有他们的IP地址,但它吓坏了我。
我更改了所有密码,并且正在加密所有敏感数据。
如何限制SQL Server Authentication
用户只能执行某些存储过程,但不执行任何其他操作(看不到任何内容,甚至无法执行Select * From [SomeTable]
)?
更新
我最终为防火墙设置了IP白名单,创建了随机90个字符的密码,设置db_denydatawriter
和db_denydatareader
并为特定用户授予Execute
特定存储过程。< / p>
答案 0 :(得分:3)
针对未受保护的sa
的攻击始终发生 ,是每个僵尸网络和恶意软件扫描工具包中的一部分。
您可以使用的唯一限制是权限和授权。没有机制限制从登录执行的内容(没有类似于ssh隧道如何仅限于某些命令的机制)。所以它真的归结为权限和强密码。
答案 1 :(得分:0)
将SQL Server打开到Internet是不安全的。最低负责任的解决方案是在其间放置VPN或Web服务器。
话虽如此,您可以从所有组(包括公共组)中删除用户,然后仅授予特定存储过程的权限。如果没有db_datareader
,则用户无法select * from SomeTable
。