我一直在使用SQL Server作为后端数据存储的Access 2003中开发应用程序。 Access仅用作GUI,不存储任何数据。应用程序中的所有代码都使用ADO编写在VBA中进行数据访问。数据库访问控制:应用程序或数据库级别控制?
在最近的会议上,在我组织的工作DBA已经成为了应用程序逻辑控制哪些数据可用于查看和更新的事实越来越关注。直到现在,我一直在开发应用程序的方式是使用单个数据库登录来访问数据库。此数据库登录是唯一允许访问数据库的用户,并且所有其他数据库用户(DBA类型除外)都受到限制。
此项目的DBA坚持要在应用程序的每个用户都有自己的帐户只能映射到数据库中的这些对象,他们应该有机会。当然,我可以看到他的关注,这就是为什么我希望问两个问题...
是具有单一的应用程序级别的登录到数据库的不好的做法?我曾计划实施一个基于角色的安全模型,其中“访问”用户依赖于他们的应用角色。但是,应用程序逻辑确定是否允许某些查询/更新进行。
有谁知道一些资源(文章/书籍),其过去如何设计,其中数据库访问是从SQL Server中,而不是通过应用控制的应用程序?
对我来说,错误在于使用SQL Server身份验证而不是Windows。如果您使用后者,则不需要在Access前端存储登录凭证。忽略偏执说,Access是一个糟糕的前端 - 这是一个很好的前端,但你必须设计它才能正常工作,并且Windows认证是我认为的要求之一。 – 2010-07-13 20:17:08
我们确实使用Windows身份验证。我个人认为.NET(ASP.NET或WinForms)会是一个更好的解决方案,但是,这不是我的决定。 – webworm 2010-07-14 15:57:01