当前位置: 首页 > 科技观察

当心懒惰的程序员降低你的数据库安全性

时间:2023-03-19 01:04:44 科技观察

在我的最新书中,我试图为新手SQLServer管理员解释SQLServer安全性。必须承认,很少有应用程序是按照SQLServer安全性所期望的方式编写的。我把这个问题归咎于懒惰的数据库开发人员。毫不奇怪,这本书的早期审稿人是几位开发人员,他们对我的评论很反感。一个人写道,“SQLServer不是唯一的数据库,我编写的代码必须与Oracle匹配。”是的,因为简单易行,不用担心对用户造成影响。您需要了解数据库开发人员和供应商的态度,并且需要与之抗争。数据库安全技术的最佳标准是在数据库中只创建一个用户帐户,然后让应用程序的每个副本使用这个单一用户帐户登录。这个应用程序实现了它自己的“安全性”,我确信它对由Microsoft、Oracle和其他平台公司的数百名专家开发的平台安全性来说是稳健的。这种方式的问题主要体现在以下几个重要方面:审计:当只有一个用户账户可以访问数据时,你无法知道是谁在做这件事。当然,应用程序可以实现自己的审计跟踪,但任何拥有帐户名和密码的知识渊博的用户都可以绕过审计跟踪。安全性:将用户名和密码嵌入到连接字符串中可以降低其被发现的可能性。现成的工具可以在几秒钟内反编译常见的企业应用程序,以明文形式留下连接字符串及其密码。故障排除:由于您无法将单个数据库连接分配给某人,因此很难对性能和操作问题进行故障排除。当用户抱怨速度慢时,管理员无法查明问题所在。这意味着问题会持续更长的时间。对于开发人员来说,将他的应用程序切换为使用SQLServer自身的安全性几乎是毫不费力的。只需要对主连接字符串进行更改,删除用户名和密码并让用户的Windows登录凭据通过。在大多数环境中,除了授予服务器端权限以便人们可以读取和写入必要的数据之外,这就是数据库管理员需要做的所有事情。您将利用SQLServer自身的审计功能、更好的故障排除和更高的安全性,无需为应用程序的每个副本中嵌入的全能用户提供明文密码。那么,您如何应对最新的标准数据库安全技术呢?简单的。建立采购标准。确保新应用程序使用SQLServer的Windows身份验证机制。对现有应用程序进行更改。您可能需要与供应商制定一个时间表,或者让他们知道有利可图的“维护费”收入并不是那么有利可图。控制您的环境-不要将您的公司信任给可以为您提供终极安全性但对他们来说很容易的人。