Какое явное разрешение мне не хватает, что мешает эффективному разрешению INSERT на уровне таблицы?

У меня есть пользователь, который не может обновить хранимые процедуры, потому что он получает сообщение об ошибке INSERT не может быть выполнено в одной из наших таблиц журнала изменений. Мы проверили его разрешения на вставку в эту таблицу, и они у него есть, поэтому мы не понимали, почему он не может вставить. Когда мы углубились в это, похоже, что мы дали ему разрешение явный на вставку в таблицу, но по какой-то причине он не указывает INSERT как эффективное разрешение. Наш макет: сервер -> база данных -> таблица (довольно простая настройка).

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

Разрешения сервера Явный:

  1. ИЗМЕНИТЬ ЛЮБУЮ БАЗУ ДАННЫХ
  2. ПОДКЛЮЧИТЬ SQL
  3. СОЗДАЙТЕ ЛЮБУЮ БАЗУ ДАННЫХ

Разрешения сервера Эффективный:

  1. ИЗМЕНИТЬ ЛЮБУЮ БАЗУ ДАННЫХ
  2. ПОДКЛЮЧИТЬ SQL
  3. СОЗДАЙТЕ ЛЮБУЮ БАЗУ ДАННЫХ
  4. ПРОСМОТРЕТЬ ЛЮБУЮ БАЗУ ДАННЫХ
  5. ПРОСМОТРЕТЬ ЛЮБОЕ ОПРЕДЕЛЕНИЕ

Разрешения базы данных Явный:

  1. ИЗМЕНИТЬ
  2. СОЕДИНЯТЬ
  3. СОЗДАТЬ ТАБЛИЦУ
  4. УДАЛЯТЬ
  5. ВСТАВЛЯТЬ
  6. ВЫБРАТЬ
  7. ПОКАЗАТЬ ПЛАН
  8. ОБНОВИТЬ
  9. ПОСМОТРЕТЬ ОПРЕДЕЛЕНИЕ

Разрешения базы данных Эффективный:

Какое явное разрешение мне не хватает, что мешает эффективному разрешению INSERT на уровне таблицы?

Какое явное разрешение мне не хватает, что мешает эффективному разрешению INSERT на уровне таблицы?

Какое явное разрешение мне не хватает, что мешает эффективному разрешению INSERT на уровне таблицы?

Разрешения таблицы Явный:

  1. ИЗМЕНИТЬ
  2. КОНТРОЛЬ
  3. УДАЛЯТЬ
  4. ВСТАВЛЯТЬ
  5. ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА
  6. ВЫБРАТЬ
  7. ВЗЯТЬ НА СЕБЯ ОТВЕТСТВЕННОСТЬ
  8. ОБНОВИТЬ
  9. ПОСМОТРЕТЬ ОТСЛЕЖИВАНИЕ ИЗМЕНЕНИЙ
  10. ПОСМОТРЕТЬ ОПРЕДЕЛЕНИЕ

Разрешения таблицы Эффективный:

Какое явное разрешение мне не хватает, что мешает эффективному разрешению INSERT на уровне таблицы?

Какое явное разрешение мне не хватает, что мешает эффективному разрешению INSERT на уровне таблицы?

Так в чем же ошибка, которую получает пользователь? Не забывайте DENY> GRANT, поэтому, если пользователь является частью каких-либо групп / ролей AD, которые имеют явное разрешение DENY, не имеет значения, сколько раз вы предоставляете ему разрешение GRANT, он не сможет этого сделать.

Larnu 30.10.2018 18:01

При попытке ИЗМЕНИТЬ SP появляется ошибка: Msg 229, Level 14, State 5, Procedure CustomTrigger_TableA, Line 22 [Batch Start Line 7] The INSERT permission was denied on the object 'TableA', database 'DB', schema 'dbo'.

whatwhatwhat 30.10.2018 18:08

Затем, если им была дана ясность GRANT INSERT в таблице, схеме или базе данных, я бы предположил, что где-то есть DENY.

Larnu 30.10.2018 18:12

Пользователь входит в SSMS с учетными данными Windows. Если пользователь является частью группы / роли AD, которая препятствует INSERT, будет ли группа / роль-нарушитель видна в SSMS или мне нужно искать в другом месте? Мы предположили, что все, что нам нужно исправить, содержится исключительно в SSMS.

whatwhatwhat 30.10.2018 18:16

Каково определение DDL-триггера CustomTrigger_TableA (это не может быть его фактическое имя)? Он использует EXECUTE AS? Это вставка в таблицу в другой базе данных? Кроме того, SSMS - это просто пользовательский интерфейс, который предоставляет данные из SQL Server. Ничто не содержится исключительно в SSMS.

Aaron Bertrand 30.10.2018 18:23

Это код для CustomTrigger_TableA: imgur.com/a/ykrAscq

whatwhatwhat 30.10.2018 18:35
TableA = CW_DB_Changelog
whatwhatwhat 30.10.2018 18:36

@AaronBertrand к вашему комментарию о том, что SSMS является пользовательским интерфейсом - да, извините, я просто имел в виду, что надеюсь, что все это может быть решено в домене SQL Server, и что мне не придется связываться с нашим руководителем ИТ-поддержки, чтобы изучить группу AD политики.

whatwhatwhat 30.10.2018 18:38

Не публикуйте в комментариях детали, которые должны быть в вопросе (код), и, конечно же, не размещайте код в виде изображения. Укажите код, как text в вопросе.

Larnu 30.10.2018 18:48

И что произойдет, если вы, как системный администратор, запустите это: EXECUTE AS USER = 'Domain\TheirUsername'; GO SELECT DISTINCT permission_name FROM fn_my_permissions(N'dbo.CW_DB_ChangeLog', N'OBJECT'); GO REVERT; (с возвратом каретки до и после каждого GO)

Aaron Bertrand 30.10.2018 18:53

Вот результаты: ALTERCONTROLREFERENCESSELECTTAKE OWNERSHIPVIEW CHANGE TRACKINGVIEW DEFINITION

whatwhatwhat 30.10.2018 21:01

@AaronBertrand есть ли способ увидеть предоставленные / отклоненные разрешения в зависимости от роли?

whatwhatwhat 30.10.2018 21:22

Так что INSERT явно не хватает. Для ролей, возможно, см. dba.stackexchange.com/questions/36618/…

Aaron Bertrand 30.10.2018 21:25

Глядя на роли сервера, частью которых я являюсь, я вижу, что я настроен только на публичную роль. Что касается ролей базы данных, я являюсь частью db_applicationdev, db_datareader, db_datawriter, db_executor, rpt_developer.

whatwhatwhat 31.10.2018 19:59

Роль rpt_developer дает мне право INSERT для таблицы. Не уверен, что еще я могу проверить. @AaronBertrand, что ты об этом думаешь? Мы надеемся избежать необходимости предоставлять роль сервера системному администратору только для того, чтобы иметь возможность вставлять данные в эту таблицу.

whatwhatwhat 31.10.2018 20:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
15
237
0

Другие вопросы по теме