Получить разрешения столбца для таблицы для указанного пользователя - PullRequest
0 голосов
/ 24 мая 2019

У меня есть база данных (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, это невозможно

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