Как предоставить пользователям доступ только для чтения ко всем базам данных - PullRequest
11 голосов
/ 07 июля 2010

Я хочу, чтобы группа пользователей имела доступ только для чтения ко всем таблицам и представлениям во всех базах данных на SQL Server (я использую SS2008).Я бы хотел, чтобы эти пользователи имели доступ только для чтения ко всем будущим таблицам и для просмотра.

Как бы вы это настроили?

Ответы [ 3 ]

11 голосов
/ 07 июля 2010

добавить пользователя к роли db_datareader

пример

exec sp_addrolemember 'db_datareader',YourLogin

Информация о db_datareader: http://msdn.microsoft.com/en-us/library/ms188629(SQL.90).aspx

1 голос
/ 29 июня 2016
DECLARE @dbname VARCHAR(50)
DECLARE @statement NVARCHAR(max)
DECLARE db_cursor CURSOR

LOCAL FAST_FORWARD
FOR SELECT name FROM MASTER.dbo.sysdatabases OPEN db_cursor
    FETCH NEXT FROM db_cursor INTO @dbname 
WHILE @@FETCH_STATUS = 0
BEGIN
    /* This sentence will be executed to gran the privileges. */
    SELECT @statement = 'use ['+@dbname+']; '+'EXEC sp_addrolemember N''db_datareader'', N''userPeter''';
    EXEC sp_executesql @statement
    FETCH NEXT FROM db_cursor INTO @dbname
END

В появившемся месте userPeter вы должны написать свое имя пользователя.

0 голосов
/ 07 июля 2010

Вы должны просто иметь возможность добавлять пользователей к роли базы данных db_datareader в каждой из баз данных. Вы могли бы написать скрипт для обхода баз данных и сделать это для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...