1

나는 푸른 색으로 웹 응용 프로그램을 가지고 있습니다.Azure App 서비스에서 서로 다른 사용자 권한을 가진 단일 연결 문자열

  1. MyApp.Web
  2. MyApp.WebjobTasks
  3. MyApp.WebjobAnotherTask

webjobs 웹 응용 프로그램의 일부입니다 :

내 솔루션은 아래 무언가이다. 그들은 모두 Entity Framework 및 Azure 포털에서 App Settings가 정의 될 때 동일한 Data 레이어를 공유합니다. 모든 프로젝트 웹 app 및 web 작업 config 파일에서 app 설정이 우선 적용됩니다.

모든 프로젝트에는 동일한 데이터베이스에 대한 연결 문자열 키 "DefaultConnection"이 있습니다.

그러나 webjobs에 대한 더 많은 권한이있는 사용자를 변경하고 싶습니다. 따라서 Webjob은 테이블을 ALTER/Truncate 할 수 있어야하지만 MyApp.Web은 db_datareader 및 _db_datawriter 역할 만 가져야합니다.

어떻게 다양하게 할 수 있습니까? Azure 포털에서 연결 문자열 키를 변경하여 데이터베이스를 변경할 수있는 권한이있는 사용자를 사용하는 경우 공개 된 응용 프로그램에 불필요한 권한이 부여되는 좋은 해결책은 아닙니다.

각 응용 프로그램이 Azure 포털에 자신의 응용 프로그램 설정 페이지가 있어야한다는 것은 좋지 않습니다. 따라서 각 응용 프로그램마다 다른 사용자 권한을 실행할 수 있습니다.

더 좋은 방법이 있나요? 아니면 webjobs 용 app.config에 새로운 사용자 및 암호 키를 추가하고 집 보관 작업을 실행하기 전에 연결 문자열을 업데이트하기 위해 해당 키를 읽어야합니까?

답변

1

나는 즉시 connection string을 변경하지 말 것을 권합니다. 이것은 경쟁 조건을 만들 수 있습니다.

다른 책임이있는 웹 작업의 경우 connection strings을 추가하는 것이 좋습니다. 그러나 현재 connection string을 삽입하지 않은 경우 DbContext 작성을위한 추가 논리가 필요할 수 있습니다.

다른 connection strings을 사용하면 웹 작업을 다른 장소 (예 : Azure 기능 등)로 마이그레이션하는 것이 더 쉽고 웹 작업이 허용되지 않는 db 작업을 수행하는 것이 제한되어 있습니다 감사 로그를 지우도록 설계되었습니다.

+0

나는 그것에 대해서도 생각했다. 그러나 연결 문자열 이름은 dbcontext에 하드 코딩되어 있습니다. 연결 문자열 이름을 삽입하려면 모두 변경해야합니다. – akd

관련 문제