我有一个Winforms应用程序,它可以连接到本地SQL Server和Azure数据库实例。它是多租户的,我想在主机上使用证书和密码组合来验证用户身份。
也就是说,用户需要同时具有证书和密码才能访问数据库。
我打算将列级加密与SQL Server / Azure DB一起使用以保护数据,并使用行级安全性隔离租户。
将通过Active Directory中的用户SID访问行数据。
实现此目标的最佳方法是什么?这是好习惯吗?
答案 0 :(得分:0)
首先:欢迎使用StackOverflow
您的问题显然需要体系结构的解决方案。
您可能需要研究称为StrategyPattern的模式。
StrategyPattern最有可能适合您的方法,因为您可以将应用程序设计为具有两个处理对数据库访问进行身份验证的类。最简单的设计是使用简单的界面(将其称为IDatabaseAuthentificator
)。现在,您在某处(例如在app.config中)有一个标志,该标志决定了应用程序应使用哪种数据库以及哪种身份验证。
因此,当您尝试连接数据库时,将首先读取ConnectionString
,然后读取此标志。