Я пытаюсь выяснить, почему конкретный пользователь базы данных 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 возвращает нужные мне данные.Мне интересно, если это какая-то проблема с разрешением.