У меня есть веб-приложение в Azure.
Мое решение что-то ниже:
- MyApp.Web
- MyApp.WebjobTasks
- MyApp.WebjobAnotherTask
Веб-задания являются частью веб-приложения. Все они используют один и тот же уровень данных для доступа к данным с помощью Entity Framework и на портале Azure, когда параметры приложения определены, параметры приложения переопределяются во всех файлах конфигурации веб-приложений и веб-заданий проектов.
Все проекты имеют ключ строки подключения как «DefaultConnection» для одной и той же базы данных.
Но я хотел бы изменить пользователя (у которого больше прав для ведения домашнего хозяйства) для веб-заданий. Таким образом, Webjob должен иметь возможность ALTER/Truncate таблицы, тогда как MyApp.Web должен иметь только роли db_datareader и _db_datawriter.
Как я могу разнообразить это? Если я изменю ключ строки подключения на портале Azure, чтобы использовать пользователя, у которого есть разрешение на изменение базы данных, то это не очень хорошее решение, поскольку общедоступному приложению будут предоставлены ненужные разрешения.
Было бы неплохо, если бы у каждого приложения была собственная страница параметров приложения на портале Azure. Чтобы каждое приложение могло запускаться с разными правами пользователя.
Есть ли лучший способ добиться этого? Или я должен добавить новые ключи пользователя и пароля в app.config для веб-заданий и прочитать эти ключи, чтобы обновить строку подключения перед запуском домашних заданий?