我目前正在使用 Master 数据库的 CONTEXT_INFO 属性来存储登录的用户名,以便稍后在表触发器中使用它进行审计。
在迁移到 SQL Azure 时,跨数据库连接的问题突然出现,我找不到该问题的直接解决方案。
以下是问题详情:
- 我从数据访问层调用存储过程 XXX 并将用户名作为参数传递
- 用户名用于设置 XXX 中的 CONTEXT_INFO 值
- 然后在表插入/更新/删除触发器中使用 CONTEXT_INFO 值来存储用户名以进行应用程序审计
到目前为止我找到的解决方案:
- 在数据库中创建表以用作 CONTEXT_INFO
- 在数据访问层中使用 2 个连接字符串,一个用于主数据库(设置 CONTEXT_INFO),另一个用于应用程序并在每次打开与我的应用程序的连接之前执行 SET CONTEXT_INFO
但我发现这两种解决方案都有风险,特别是将来在多个 SQL Azure 数据库上扩展数据库时。
感谢您的支持。