title: Should an Entity Framework DbContext run under a less privileged user than migrations?
body: <h2>Two ways</h2>
  <p>For EF Core, I have often seen the suggestion to run the migrations as part of the startup process of the application.</p>
  <p>For our web application at work, we have a separate application which runs our migrations. The web application itself runs under a different user, who does not have the rights to change the schema.</p>
  <h2>My considerations</h2>
  <ul>
  <li>It <em>does</em> prevent SQL injection changing the schema.</li>
  <li>That work application is 15+ years old. Modern ORMs have gotten pretty good at preventing SQL injection.</li>
  <li>It prevents SQL injection from outright dropping a column, but using the allowed operations to fill the column with garbage data seems about equally destructive.</li>
  </ul>
  <h2>Question</h2>
  <p>For an EF Core project, under which circumstances is such a separation necessary/advisable/still worth it?</p>