MSSQL db_datareader para todos os bancos de dados

2

Eu tenho 100 bancos de dados no MSSQL 2008 Server. Eu preciso criar um usuário somente leitura para ler todos esses bancos de dados. Existe uma função ampla do servidor: db_datareader para o qual eu posso atribuir o usuário, para que eu não precise passar por cada banco de dados para adicionar o mapeamento do usuário.

Obrigado tim

Para quem ajuda, este é o meu roteiro final:

 --You will need Server Level's Login user123 created first.
 -- >=7 filtered out the system database, use this to find out your number
 -- EXEC sp_MSForEachDB 'use ? SELECT DB_ID(), DB_NAME()'
 EXEC sp_MSForEachDB
   'USE ?
    IF DB_ID() >= 7 
    BEGIN
       CREATE USER user123 FOR LOGIN user123
       EXEC sp_addrolemember db_datareader, user123
    END
   '
    
por starchx 25.03.2011 / 04:19

1 resposta

6
EXEC sp_MSForEachDB
  'USE ?
   IF DBID() >= 5 EXEC sp_addrolemember ''db_datareader'', ''MyUser'' '
    
por 25.03.2011 / 07:07