我们有一个使用 SQL Server 登录(不是 AD)对数据库进行身份验证的应用程序。这是一个单一的通用帐户,因此如果我们有 100 个用户登录,他们创建的所有连接都具有与之关联的相同用户名。
这对我们想要用来监控服务器上不适当或错误行为的一些审计工具提出了挑战(它们无法解析用户)。
有没有更好的方法来管理这种连接?以下是我们的目标:
我们希望授权应用程序访问 SQL 服务器,而不是用户(所以我们不希望用户能够启动 Access 或 Crystal Reports 并开始弄乱数据库,访问应该通过我们的代码)。出于这个原因,我们避免使用集成安全性。
我们希望能够将 SQL Server 上的活动进程与启动它的用户相关联
我们需要能够使用 ORM(比起存储过程更喜欢参数化 SQL,因此我们不能只指定 AD 帐户的仅执行权限)
我所知道的唯一让我知道的选择是:
- 将某种特定于用户的元数据附加到连接
- 每个用户使用 SQL Server 登录
- 放弃我们连接上的任何用户身份信息
有没有我不知道的第四个选项?