В MS SQL 2008 Management Studio я пытаюсь запретить определенные столбцы / поля в таблице конкретному пользователю.
Для этого я щелкаю правой кнопкой мыши по БД, развертываю «Безопасность», а затем развертываю «Пользователи».
После того как я выбрал нужного пользователя, я щелкаю правой кнопкой мыши и выбираю «Свойства».
Следующим шагом является выбор страницы «Защищаемые», а затем «Разрешение». Затем следует нажать «Разрешения столбца»
![enter image description here](https://i.stack.imgur.com/HQIOn.jpg)
После того, как я выбрал поля, к которым я хочу запретить доступ для выбранного пользователя, я нажимаю «Скрипт», чтобы увидеть T-SQL в новом окне запроса (вы можете обратиться к тому же изображению выше. Скрипт находится в верхней части окна).
Итак, вот мой вопрос: результирующий скрипт дублирует каждое действие дважды.
Например, вот как это выглядит:
use [master_table]
GO
DENY SELECT ON [dbo].[Table_Main] ([DatabaseConnectionString]) TO [Testing_Login]
GO
use [master_table]
GO
DENY SELECT ON [dbo].[Table_Main] ([DBUserName]) TO [Testing_Login]
GO
use [master_table]
GO
DENY SELECT ON [dbo].[Table_Main] ([DBPassword]) TO [Testing_Login]
GO
use [master_table]
GO
DENY SELECT ON [dbo].[Table_Main] ([DatabaseConnectionString]) TO [Testing_Login]
GO
use [master_table]
GO
DENY SELECT ON [dbo].[Table_Main] ([DBUserName]) TO [Testing_Login]
GO
use [master_table]
GO
DENY SELECT ON [dbo].[Table_Main] ([DBPassword]) TO [Testing_Login]
GO
Есть идеи, почему это происходит? У нас есть несколько таблиц, для которых я хочу сопоставить разрешения, и намеревался использовать CURSOR для этого. Но я не знаю, должен ли я включать приведенный выше скрипт, как в моей процедуре, или безопасно удалить дубликаты операторов.
Пожалуйста, дайте мне знать, что вы думаете.
Спасибо