У меня есть база данных (mssql) и несколько таблиц.
В Microsoft SQL Management Studio я установил некоторые разрешения на столбцы для одной таблицы для обновления (запретить) для указанного пользователя БД.
Это работает.
Пользователь не может обновлять столбцы с запрещенными разрешениями. Он дает сообщение об ошибке, для некоторых столбцов есть разрешения, например:
В обновлении было отказано в разрешении UPDATE для столбца «имя» объекта «Пользователь», базы данных «AL», схемы «dbo».
Что я планирую сделать, так это показать таблицу в сетке данных, получить столбец с ограничениями (разрешениями) и установить их только для чтения. Таким образом, пользователь не будет изменять их и обновлять пароль без ошибок.
У меня вопрос, как мне получить список (массив) этих столбцов с помощью c # в моем коде?
Редактировать 1)
Я нашел эту команду:
SELECT T.TABLE_TYPE AS OBJECT_TYPE, T.TABLE_SCHEMA AS [SCHEMA_NAME], T.TABLE_NAME AS [OBJECT_NAME], NULLIF(P.subentity_name, '') as COLUMN_NAME, P.PERMISSION_NAME FROM INFORMATION_SCHEMA.TABLES T
CROSS APPLY fn_my_permissions(T.TABLE_SCHEMA + '.' + T.TABLE_NAME, 'OBJECT') P
WHERE T.TABLE_NAME = 'tabel_name'
ORDER BY OBJECT_TYPE, [SCHEMA_NAME], [OBJECT_NAME], COLUMN_NAME, P.PERMISSION_NAME
И если я увижу результат, если я возьму, у какого столбца есть только разрешение SELECT, возможно, у меня есть то, что мне нужно.
Редактировать 2)
Нет Entity Framework, это невозможно