数据库有必要根据不同的web应用设置不同的用户吗
我用asp.net写了几个站点,在同一台服务器上,领导说要用不同的帐户.
我们公司的传统是要建不同的帐户的,之前是数据库管理员做的,我提需求.
现在这件事要由我来做,我想知道有这必要吗
------解决方案--------------------我觉得这样做,是挺好的安全措施。
我之前的公司,有的服务器上运行了多个系统,这些应用系统,连接到同一台数据库服务器,访问数据库。
但是很不好的一点是,基本上所有的系统都会用sa超级用户去连接数据库,这个其实是很不安全的。
所以你针对不同的应用,设置不同的用户,设置不同的权限,有助于系统的安全。
------解决方案--------------------一般不同的站点都会设置不同的用户,给他不同的权限。
------解决方案--------------------提高安全性,当然每个网站所对应的数据库使用单独的账号。
------解决方案--------------------sqlserver从2005开始有专门的应用程序角色,这个就是给应用程序的,很多公司喜欢直接给sa,很多公司就简单开一个sql身份验证给应用程序,从安全性来说都不是最好的方法,我个人觉得要么开windows身份验证给应用程序,要么可以考虑使用应用程序角色这个功能。既然sqlserver给你这样用,必然有它的道理,当然,如果权限管控的好,就算给sa也不是什么问题
------解决方案--------------------这个完全取决于你的Web业务大小,如果你的Web系统非常大,包含多个数据库,例如像下面这样的应用:
db_resource
db_finance
db_vehicle
db_security
等等,那么所有的业务都需要通过db_security来鉴权,因此都应该有这个数据库的权限,但是其他的业务又是非常独立,例如会计出纳只会用到财务数据库db_finance,HR只会用到人力资源数据库db_resource,那么就可以利用在新建用户时进行用户映射,如下图
以上是第一步,第二步我觉得是要在你们的系统中针对功能和数据分别做相应的权限处理,保证某类人只能使用相关的功能和数据。
第三步是对增删改操作增加日志记录,在系统中有一个表专门存储某人在某个时间针对某个功能做了什么操作。
------解决方案--------------------建议分开帐号。
不麻烦的。建帐号分配权限很快的。
这几个web 都是你们公司做的,
那是不是可预见有可能跨库访问?!
如果很有可能,那你用一个帐号也行啦。
------解决方案--------------------提高安全性能。
------解决方案--------------------建议份用户权限,我现在都是这样处理的
------解决方案--------------------------解决方案--------------------一般大型互联网站数据库是分离的,比如会员一个库,产品一个库,支付一个库,这个时候访问DB 通常就是一个应用角色连接DB 进行开发,有读写权限,然后可以针对查询要求建立一个帐号,专门查询但不能写数据。。。