SQL Server - дать разрешение на вход в систему для доступа на чтение ко всем существующим и будущим базам данных

У меня есть хранимая процедура, которая находит все существующие базы данных и читает из таблицы в каждой.

Есть ли способ, которым я могу дать логин доступ на чтение ко всем базам данных и ко всем будущим базам данных, т. Е. Мне не придется ничего делать при добавлении новой базы данных?

Существует ли роль сервера, которая бы Работа? Есть ли способ заставить задание агента SQL добавить разрешения для любых новых баз данных? Или есть какой-то другой метод?

7
задан gbn 23 August 2010 в 18:36
поделиться

1 ответ

Для новых баз данных добавьте пользователя в базу данных модели. Он используется в качестве шаблона для всех новых баз данных.

USE model
CREATE USER ... FROM LOGIN...
EXEC sp_addrolemember 'db_datareader', '...'

Для существующих баз данных используйте sp_MSForEachDb

EXEC sp_MSForEachDb '
 USE ?
 CREATE USER ... FROM LOGIN...  
 EXEC sp_addrolemember ''db_datareader'', ''...''
'
9
ответ дан 7 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: