Entity framework code first migrations, sql user permissions?

Clearly it depends on what your migrations are/(will be) doing. For my use case, I ended up creating a shema, and restricting the user that the migration uses to the permissions below.

GRANT ALTER, INSERT, SELECT, DELETE, UPDATE, REFERENCES ON SCHEMA::schema_name TO migration_user
GRANT CREATE TABLE TO migration_user

On-Prem: SQL server with AD/sql login

you need the following permissions on the database.

[db_datareader]
[db_datawriter]
[db_ddladmin]

For full control over database use

[db_owner]

Azure Could: Azure SQL with ADD (Edit)

Please add [dbmanager] to master and user database.