用于远程数据库操作的SQL Server登录角色



我的场景是MVC博客(funnelweb)安装在服务器上命名为WEB。SQL Server 2005运行在DB上。FunnelWeb网站需要访问自己的数据库。我使用SQL Server管理工作室创建了一个新的数据库,并将其命名为FunnelWeb。我想使用SQL身份验证,所以我创建了一个SQL登录FunnelWebAdmin。在登录映射中,我将FunnelWebAdmin映射到FunnelWeb数据库,并授予他对数据库的dbowner权限。我没有授予登录任何服务器角色。

为服务器启用SQL身份验证。

我的问题是:

我是否需要授予此登录任何服务器角色,以便网站可以使用SQL身份验证连接到数据库?如果是,这是最小的一个,以便网站能够操作数据库

除非我错过了某些设置,否则DBAdmin角色中的用户将赋予其登录权。它将赋予它对数据库的全部权限和控制权。

确保你锁定了那个web应用程序。从web应用程序中给数据库提供管理权限是很危险的。它使您对SQL注入敞开大门,这可能会导致各种各样的问题。一个好的攻击者(或者一个普通的可以访问google的攻击者)可以利用SQL注入攻击并在服务器没有正确锁定的情况下获得对操作系统的完全控制。http://sqlmap.sourceforge.net/doc/BlackHat-Europe-09-Damele-A-G-Advanced-SQL-injection-whitepaper.pdf

即使他们无法控制操作系统,您仍然需要担心数据盗窃,插入XSS或XSRF脚本,或任何数量的攻击。

我不是说不要这样做,只是要小心,确保你知道你在做什么。如果有任何漏洞,通过web应用程序访问数据库是小菜一碟。你可以买一些工具包来帮你做这些,所以攻击者甚至不需要知道他们在做什么。

我真的不知道你的经验水平是多少,所以如果我告诉你一些你已经知道的事情,请原谅我。你的问题表明你更像是"初学者",但我可能错了。

假设我是对的,然而,我真的会提醒你花很多时间在这些网站上,学习你能学到的一切。他们在学校或"学习编程"资源(书籍、网络、视频等)中没有充分地教授这些东西。

OWASP Top 10

编写安全代码(Microsoft)

即使网站本身不能在互联网上访问(比如它在公司内部网上运行,只有登录的用户才能访问),你仍然需要小心。统计数据显示,有权限的心怀不满的同事与外部攻击者构成的威胁一样大。只是要记住一些事情。

最新更新