我在一家小公司工作,我正在尝试找出一种解决方案,用于在 Microsoft SQL Server 中存储多个客户端的敏感数据。实际上,我觉得这是一个一般的数据库问题,并不特定于 MSSQL。
到目前为止,我们一直在使用专有数据库,其中客户端数据作为 db 文件(平面文件)存储在文件系统中客户端的根目录中。所以操作系统权限保证客户端 X 使用的应用程序永远无法从客户端 Y 的数据库中获取数据。请注意这里没有数据库服务器/实例/引擎……</p>
但是,对于我的项目,我想使用 SQL 数据库。但是安全人员对将不同客户端的数据放在单个数据库上表示担忧。
一种选择是为不同的客户端创建单独的数据库实例。但是,我不确定这个想法是否可扩展。
所以我的问题是:
1) MSSQL 中是否有任何机制可以让您将数据库“单独”存储在 SQL 服务器使用的不同文件中?
2) 假设我只有一个数据库实例,其中我有客户端 X 和客户端 Y 的数据库。我如何确保客户端 X 的请求永远不会(意外)被错误定向到客户端 Y 的数据库?我不想依赖代码中的某些参数来确定要从哪个数据库中获取!:)
那么,是否有任何可靠的身份验证方案来保证我的查询不会被误导为从不正确的客户端表中获取?
我认为这是一个非常普遍的问题,必须有一个好的解决方案。其他公司在做什么?
请让我知道是否有任何好的文章可以阅读。