ограничение конечных пользователей для вставки данных с использованием хранимой процедуры - PullRequest
0 голосов
/ 14 марта 2011

с помощью хранимой процедуры, как я могу ограничить то, что пользователь ВСТАВЛЯЕТ, используя запрос на вставку, который может быть ограничен с помощью С CHECK OPTION для View?

как будто я хочу, чтобы только Стив и Питер вставляли данные в таблицу ITEM. Я добавил столбец «ПОЛЬЗОВАТЕЛИ» в таблице ITEM, которая состоит из всех имен пользователей. для этого, если я использую представление, то в опции проверки я даю:

WHERE username='steve' OR username='peter' WITH CHECK OPTION

но как мне сделать это с помощью хранимой процедуры?

1 Ответ

3 голосов
/ 14 марта 2011

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

Вопрос: как, по вашему мнению, Стив или Питер выполняют представление?

CREATE PROC myProc
   @p1 int
AS
SET NOCOUNT ON

BEGIN TRY
    IF SUSER_SNAME() NOT IN ('steve', 'peter')
       RAISERROR ('Oi: Steve and Peter only', 16, 1)

END TRY
BEGIN CATCH
   ...
END CATCH
GO

Смотрите мой ответ здесь для хранимого шаблона процесса

...