Сценарий на чистом TSQL очень грязный, SQL Azure отключает команду USE
, поэтому вы застреваете, открывая соединения с каждой БД, которая необходима для предоставления пользователю прав на чтение.
Это суть паттерна.
В основной базе данных:
CREATE LOGIN reader WITH password='YourPWD';
-- grant public master access
CREATE USER readerUser FROM LOGIN reader;
В каждой целевой БД (требуется отдельное соединение)
CREATE USER readerUser FROM LOGIN reader;
EXEC sp_addrolemember 'db_datareader', 'readerUser';