Можно ли получить доступ к табличным ограничениям с помощью членства в роли db_datareader в базе данных SQL Server - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь выяснить, почему конкретный пользователь базы данных SQL Server, который имеет членство db_datareader и db_datawriter, не может выполнить оператор выбора, который получает некоторые проверочные ограничения для конкретной таблицы.

Я запускаю оператор выбора в моем коде, но он не возвращает никаких данных.Возможно, я подумал, что для получения информации об ограничениях вам могут потребоваться другие разрешения.Я попытался посмотреть на некоторые роли и что они значат, но не ясно, что именно может делать роль db_reader.

string constraintCommand = @"SELECT tc.CONSTRAINT_NAME, CC.CHECK_CLAUSE
    FROM[INFORMATION_SCHEMA].[CHECK_CONSTRAINTS as cc
    INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS as tc ON cc.CONSTRAINT_NAME = tc.CONSTRAINT_NAME AND cc.CONSTRAINT_SCHEMA = tc.TABLE_SCHEMA
    WHERE tc.TABLE_NAME = 'VideoSources'";

Это в C #.Я выполняю инструкцию SQL в SSMS от имени себя (db_owner), и инструкция SQL возвращает нужные мне данные.Мне интересно, если это какая-то проблема с разрешением.

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Я считаю, что разрешение Grant или Deny отменяет членство в роли. Возможно, вам придется специально предоставить разрешение на выбор в таблице.

1 голос
/ 29 марта 2019

Для запуска хранимой процедуры роли необходимы разрешения на выполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...