Было бы лучше создать разных пользователей базы данных, которые могут / не могут выполнять эти операции в БД, потому что довольно легко повторно включить кнопку с помощью программы типа шпион в окне. Вот ссылка на проект codeproject , где истинный автор создает простое приложение для повторного включения отключенных элементов управления (для защиты от гниения ссылок суть в том, чтобы найти дескриптор элемента управления и вызвать EnableWindow, отправить его WM_ENABLE и установить его стиль WM_DISABLED в false). См. Также эту статью: 6 программ для принудительного включения отключенных элементов управления
Главное, на что я здесь указал, это то, что эти программы не имеют ничего общего с вашим приложением. Если я пользователь с хакерскими наклонностями и обнаружу, что единственный способ защитить ваших пользователей низкого уровня от создания обновлений БД - это отключить кнопку обновления, я просто воспользуюсь приложением, чтобы снова включить вашу кнопку и щелкнуть ее в любом случае. Этот уровень важности безопасности должен управляться в другом месте
Если вы хотите иметь только двух пользователей БД и затем свернуть свою таблицу пользователей, вы должны запустить свое приложение, используя пользователя БД только для чтения в строке подключения, и выполнить вход и, если пользователь является администратором, измените строку подключения, чтобы использовать пользователя БД, который может обновлять
. Чтобы было ясно, когда я говорю «пользователь БД», я имею в виду пользователя / логин для сервера sql, например sa
, я не имею в виду «запись в таблице пользователей, которая представляет человека, использующего вашу пограмму». Один логин будет иметь привилегию db_datareader, другой - db_owner et c (SQL номенклатура сервера)
Если вы все еще не можете изменить кнопки, см. Здесь методы, которые могут перечислять все кнопки в форме: Как получить ВСЕ дочерние элементы управления формы Windows формы определенного типа c (Кнопка / Текстовое поле)?
Будьте последовательны в отношении имен ваших кнопок, и вы сможете определить, является ли это кнопка обновления, например, имя, содержащее «обновление»