как ограничить доступ пользователей: только функция connect и exec - PullRequest
1 голос
/ 08 апреля 2011

Пожалуйста, посоветуйте, как ограничить доступ пользователей к mssql: просто подключитесь и выполните только определенный список функций или хранимых процедур.Проблема в том, что роль public по умолчанию дает больше прав, чем нужно - перечислять базы данных, получать список пользователей и т. Д. Как закрыть как можно больше (запретить все) и после этого открыть только то, что разрешено?

Реальная ситуация такова: партнерский сайт попросил не получать данные через веб-сервис xml, но имеет прямое подключение к mssql, и я собираюсь создать для них табличную функцию или хранимую процедуру с параметрами, но хочу спрятать все, что происходит внутри сервера..

Спасибо.

1 Ответ

2 голосов
/ 08 апреля 2011

Вы можете отказать им в разрешениях, которые им не понадобятся. Например, вы можете DENY VIEW ANY DATABASE, чтобы они не могли видеть другие базы данных на сервере. Через DENY доступно множество опций (так много, что у них есть отдельные страницы для тех, которые применяются на уровне сервера, и для тех, которые применяются на уровне базы данных ).


Просто:

DENY VIEW ANY DATABASE to <user> --Run in master

и

DENY VIEW DEFINTION to <user> -- run in the database you've given them connect permission

должно быть достаточно, чтобы они ничего не видели или не выбирали из каких-либо таблиц. Тогда вам просто нужно явно предоставить им разрешения, которые вы хотите, чтобы они имели.

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