I have a table that contains a list of database names that were restored by a SQL Job. We currently have a SQL Job, which runs after the restore, that creates a user in each of these databases for a specific set login and adds the db_datareader role as follows:
USE Datebase1
GO
create user [Domain\jdoe] from login [Domain\jdoe];
exec sp_addrolemember 'db_datareader', 'Domain\jdoe';
USE Datebase2
GO
create user [Domain\jdoe] from login [Domain\jdoe];
exec sp_addrolemember 'db_datareader', 'Domain\jdoe';
USE Datebase3
GO
create user [Domain\jdoe] from login [Domain\jdoe];
exec sp_addrolemember 'db_datareader', 'Domain\jdoe';
This works but the the list of restored databases in the table varies based on each run of the SQL Job. This requires us to constantly edit the step in the SQL job with new names for the 'Use Database#' portion. for example, the next run of the SQL Job step might look like this:
USE Datebase1000 (HAVE TO EDIT THIS)
GO
create user [Domain\jdoe] from login [Domain\jdoe];
exec sp_addrolemember 'db_datareader', 'Domain\jdoe';
USE Datebase2000 (HAVE TO EDIT THIS)
GO
create user [Domain\jdoe] from login [Domain\jdoe];
exec sp_addrolemember 'db_datareader', 'Domain\jdoe';
USE Datebase3000 (HAVE TO EDIT THIS)
GO
create user [Domain\jdoe] from login [Domain\jdoe];
exec sp_addrolemember 'db_datareader', 'Domain\jdoe';
Assuming our login already exists on the server (Ex: Domain\Jdoe), how would we dynamically run the steps above for a variable list of databases?
Thanks