MS-SQL, GRANT создать таблицу, но DENY удалить таблицу - PullRequest
0 голосов
/ 27 июня 2019

Цель состоит в том, чтобы создать РОЛЬ, которая позволяет пользователям выполнять обычные задачи, включая создание таблиц, но запрещая удаление таблиц.

Вот что у меня есть:

CREATE ROLE db_All_CreateTable
DENY ALTER ANY SCHEMA TO db_All_CreateTable
GRANT CREATE TABLE, EXECUTE, SELECT, INSERT, DELETE, UPDATE TO db_All_CreateTable

EXEC sp_addrolemember 'db_All_CreateTable', "DOMAIN\DOMAIN_USER";

Поскольку роли DENY "DROP TABLE" не существует, мне придется предоставить все необходимое. Строка «DENY ALTER» была добавлена, чтобы указать, что я вообще не хочу эту роль.

Похоже, что он работает, как ожидалось, но это может быть просто удача.

Вопрос: Является ли это допустимым способом создания роли, которая может выполнять обычно работу с базой данных и создавать таблицы, или есть лучший способ, спасибо.

...