
Я только что настроил доступ для пользователя SQL-сервера к одной таблице. Я сделал это, дав пользователю роль db_datareader. Затем я установил разрешения для всех таблиц, к которым я не хотел, чтобы этот пользователь имел доступ, установив все флажки в столбце DENY для каждой таблицы.
Это сработало, но потребовало много нажатия кнопок.
Есть ли более короткий и простой способ сделать это?
решение1
ДА! Вы сделали все с точностью до наоборот. Удалите пользователя из роли чтения данных (которая, как вы обнаружили, предоставляет права на выборку для всей базы данных) и предоставьте права на выборку только для этой одной таблицы.
USE MyDB
GRANT SELECT ON dbo.MyTable to JoeUser
Или в SQL Server Management Studio
- Щелкните правой кнопкой мыши по таблице и получите свойства.
- Нажмите «Разрешения» в меню слева.
- Нажмите «Поиск» и найдите своего пользователя.
- Поставьте галочку в столбце «Грант» в строке «Выбрать».