Как создать пользователя на SQL-сервере, который имеет доступ только к одной таблице и может вставлять только строки

У меня есть база данных SQL-сервера, с которой скоро будут две базы данных, которые я использую для веб-сайта.

У меня уже есть учетная запись пользователя, доступная только для чтения для базы данных 1 для поиска инвентаря нашей продукции. Я хотел бы создать отдельную учетную запись только для базы данных 2, только для таблицы 1, которая ТОЛЬКО позволяет вставлять записи (без обновления или удаления или чего-либо еще). Я стараюсь быть как можно более избыточным с ограничениями доступа (поверх кода, чтобы попытаться предотвратить SQL-инъекцию, если кто-то каким-то образом что-то пропустил, я не хочу, чтобы сама база данных позволяла это).

Итак, вопрос в нижней строке. Как создать пользователя на SQL-сервере, который имеет ограниченный доступ только к таблице x в базе данных y и может только читать/вставлять записи и ничего больше?

Ответ 1

создать пользователя, не назначать роли, такие как db_datareader или db_datawriter

затем GRANT INSERT ON YourTable TO SomeUser

если вы хотите вставить и выберите

GRANT INSERT, SELECT ON YourTable TO SomeUser

Ответ 2

(1) Предоставление пользователю с ограниченным доступом только к одной таблице

GRANT SELECT ON [schemaName].[tableName] to [username]
Go 

(2) Предоставить разрешение INSERT.

GRANT INSERT ON [schemaName].[tableName] TO [username]

Ответ 3

Синтаксис для предоставления доступа к одной таблице:

GRANT access_type ON table_name TO [user name]

Синтаксис для отзыва доступа для отдельной таблицы:

REVOKE access_type ON table_name FROM [user name]

где access_type может быть SELECT, INSERT, DELETE...