2016-12-05 2 views
1

У меня есть учетная запись пользователя, которая находится в группе администратора на компьютере, и говорит, что имя «admin.x».Как ограничить встроенное разрешение администратора в SQL Server 2008?

В результате это также находится в списке в SQL Server, размещенном на сервере, что означает, что «admin.x» также имеет разрешение администратора db.

Я попытался предоставить его только db_datareader (Безопасность -> Логины -> щелкните правой кнопкой мыши «admin.x» -> свойства -> Отображение пользователей -> выберите целевую базу данных -> проверить public и db_datareader). С этой конфигурацией я подумал, что она может читать только данные, определенно, без написания. Тем не менее, он все еще способен писать, обновлять и удалять, что кажется, что встроенный администратор все еще работает.

Проблема «admin.x» по-прежнему должна быть администратором машины, но имеет только разрешение на чтение данных в базе данных.

+0

Чтобы быть ясным, вы или у вас теперь есть контроль над учетными записями в окне? это ваш сервер sql или он размещен сторонним лицом? –

+0

@MisterPositive Да, у меня есть контроль. «admin.x» - это учетная запись, которую мы предоставляем для нашего инструмента автоматизации. Он должен быть администратором на машине, чтобы он мог выполнять определенные задания (например, запускать, останавливать IIS и т. Д.), Но он должен иметь только разрешение на чтение в базе данных. Он размещен на одном из серверов, на котором у нас есть полный контроль. – user1888955

+0

Является ли пользователь членом группы sysadmins? –

ответ

2

Я бы предположил, что вы создаете новую группу администрирования для сервера sql, добавляете к ней соответствующие члены, предоставляете права группы sysadmin, а затем удаляете группу builtin \ Administrators.

Затем вы можете предоставить свои права администратора datareader для пользователя admin.x.

+0

Привет, на самом деле я обсуждал с моей командой, и мы решили удалить «admin.x» из группы администраторов и предоставить только db_reader в указанной таблице. Однако, забавно, что все еще можно обновить и удалить таблицу – user1888955

+0

Я запустил этот sql: SELECT SUSER_NAME(), user_name(); он вернулся «admin.x» и dbo, поэтому я думаю, что я должен что-то пропустить ... не должно быть dbo – user1888955