Цифровая подпись в Access изменена или недопустимая

Симптомы

Рассмотрим следующий сценарий.

  • В Microsoft Access в параметрах Центра управления безопасностью настроен параметр «Отключить все макросы, кроме макросов с цифровой подписью».
  • Вы открываете базу данных с цифровой подписью за пределами надежного расположения папок.

В этом сценарии может появиться одно или несколько следующих сообщений, указывающих, что цифровая подпись , применяемая к базе данных, больше не является допустимой:

  • Изменения в базе данных или проекте сделали соответствующую цифровую подпись недействительной. Это может потребовать принятия решения о доверии при следующем открытии базы данных или проекта.
  • Активное содержимое в этом файле заблокировано. Просмотрите параметры Центра управления безопасностью или обратитесь к ИТ-администратору.
  • Часть активного содержимого была отключена
  • Предупреждение. Цифровая подпись была изменена после подписания содержимого. Это содержимое не может быть доверенным.

Причина

Как известно, следующие сценарии использования базы данных являются недействительными цифровой подписи:

  • Импорт, изменение или создание форм, отчетов, макросов или модулей
  • Вы импортируете, изменяете или создаёте запросы на изменение
  • Вы импортируете, изменяете или создаёте сквозные запросы
  • Вы добавляете, изменяете или удаляете ссылки на Visual Basic для приложений (VBA)
  • База данных, содержащая элементы activeX, распространяется на компьютер, использующий другую битовую версию Microsoft 365, чем при применении цифровой подписи.
  • Параметр Автоисправление имён включён, и имеются ожидающие исправления имён
  • Параметр сведений об автокоррекции имени дорожки включается после применения цифровой подписи.

Обходные пути

Чтобы обойти эту проблему, выберите вариант для соответствующего сценария.

Запросы действий и сквозные запросы

Код VBA можно использовать для создания, изменения или удаления запросов действий и сквозных запросов в Access, не делая цифровую подпись недействительной. Это верно при условии, что любые изменения объектов отменяются в том же сеансе базы данных.

Например, цифровая подпись не является недопустимой в следующих сценариях:

  • Метод CreateQueryDef используется для создания нового именованного сквозного запроса. Перед закрытием базы данных удалите парольный запрос с помощью QueryDefs.Delete метода.
  • Коллекция QueryDefs используется для поиска именованного сквозного запроса и изменения QueryDef.SQL свойства. Перед закрытием базы данных необходимо вернуть QueryDef.SQL свойство к исходному значению.
  • Вы создаете и запускаете запрос действия или парольный запрос с помощью временного объекта QueryDef .

Параметр автозамены "Выполнение имени" включен

Перед наложением цифровой подписи убедитесь, что нет незавершённых исправлений имени. Для этого откройте и сохраните все объекты, которые могут содержать ожидающие изменения.

Примечание. Для баз данных, имеющих много объектов, рекомендуется использовать цикл кода для выполнения этой задачи.

Параметр автозамены имени отслеживания включен после применения цифровой подписи.

Перед применением цифровой подписи включите параметр автозамены имени отслеживания .

Для других сценариев, которые могут сделать цифровую подпись недействительной

Рассмотрите возможность использования разбиения базы данных, в которой интерфейсная база данных применяет цифровую подпись. После каждого использования замените интерфейсную базу данных новой копией с помощью пакетного файла или другого скрипта.