Опублікуйте це як відповідь лише тому, що це занадто довго для коментарів, і тому, що воно буде відносно інших користувачів досить скоро.
SQL Server 2014 додає нові дозволи на рівні сервера, які допоможуть точно використовувати такий тип сценаріїв - вони були розроблені з урахуванням аудиту, але цей тип вимог, як видається, відповідає і цьому законопроекту. Ви можете просто додати наступні два дозволи до входу на рівні сервера:
CONNECT ANY DATABASE
SELECT ALL USER SECURABLES
Колишній, як це звучить, дозволяє логіну підключитися до будь-якої бази даних. Приємно в тому, що це дозволить це навіть для баз даних, які створюються в майбутньому (за умови, що ви не встановлюєте явного заперечення, тобто ви можете захистити певні бази даних від логінів, які мають цей дозвіл). Останнє дозволяє логіну виконувати операції зчитування в будь-якій базі даних, до якої вони мають доступ - тому вони можуть робити SELECTз таблиць, представлень даних, UDF тощо, але вони не зможуть виконувати жодних UPDATEоперацій (я не перевіряв, чи розуміє цей дозвіл, коли збережена процедура виконує DML). Вони чудово працюють в поєднанні, якщо ви хочете надати широко відкритий доступ для читання для входу на весь сервер або бути більш точним, ви можете надати традиційні CONNECTпривілеї певним базам даних, і SELECT ALL USER SECURABLESправильно будефункція лише для тих баз даних, до яких вхід має явний доступ.
Зміни безпеки 2014 року тут задокументовані - ну частково; вони забули про дозвіл на рівні бази даних, ALTER ANY DATABASE EVENT SESSIONхоча це тут не актуально.