Я выполняю массовую вставку с объектом ADO.NET 2.0 SqlBulkCopy из метода C # в базу данных MS SQL 2005, используя пользователя базы данных с ограниченными разрешениями. Когда я пытаюсь запустить операцию, я получаю сообщение об ошибке:
Массовое копирование не удалось. Пользователь не имеет
Разрешение ALTER TABLE для таблицы
'стол'. ALTER
ТАБЛИЦА требуется разрешение на
таблица назначения операции массового копирования
если в таблице есть триггеры или проверка
ограничения, но 'FIRE_TRIGGERS'
или
'CHECK_CONSTRAINTS'
Навальные подсказки не
указывается в качестве параметров для массовой копии
команда.
Я прочитал некоторую документацию и создал объект массового копирования с помощью конструктора, который позволяет мне указывать такие вещи:
SqlBulkCopy bc = new SqlBulkCopy(
System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"],
SqlBulkCopyOptions.FireTriggers & SqlBulkCopyOptions.CheckConstraints);
Но это ничего не меняет - я получаю то же сообщение об ошибке, что и раньше. Я попытался поиграться с некоторыми другими значениями SqlBulkCopyOptions, но безуспешно. Я действительно думал, что это решит проблему, я что-то упустил?
Я протестировал процедуру после предоставления ALTER на столе моему пользователю, и операция прошла успешно. Однако это не вариант для моей ситуации.