我有一个天蓝色的网络应用程序。
我的解决方案如下:
- 我的应用程序网站
- MyApp.WebjobTasks
- MyApp.WebjobAnotherTask
Web 作业是 Web 应用程序的一部分。它们都共享相同的数据层以通过实体框架和 Azure 门户访问数据,当定义应用程序设置时,应用程序设置在所有项目 Web 应用程序和 Web 作业配置文件中被覆盖。
对于同一数据库,所有项目都有一个连接字符串键作为“DefaultConnection”。
但我想更改 webjobs 的用户(有更多的权限来做家务)。所以 Webjob 应该能够 ALTER/Truncate 表,而 MyApp.Web 应该只有 db_datareader 和 _db_datawriter 角色。
我怎样才能多样化呢?如果我将 Azure 门户中的连接字符串键更改为使用有权更改数据库的用户,那么这不是一个好的解决方案,即面向公众的应用程序将获得不必要的权限。
如果每个应用程序在 Azure 门户中都有自己的应用程序设置页面,那就太糟糕了。这样每个应用程序都可以运行不同的用户权限。
有没有更好的方法来实现这一目标?或者我应该在 webjobs 的 app.config 中添加新的用户和密码密钥,并在运行家政工作之前读取这些密钥以更新连接字符串?