Описанная ошибка после попытки sp_addrolemember () связана с тем, что текущий пользователь не имеет необходимых прав для изменения настроек учетной записи и безопасности.
Что касается запуска SqlBulkCopy, ему требуются права на запись, и роль db_datawriter - это удобный способ предоставить их, но, возможно, вы можете рассмотреть альтернативные варианты. Например, вместо увеличения (если только временно) привилегий безопасности текущей учетной записи вы можете изменить параметры безопасности, связанные с этой конкретной базой данных / таблицами.
Изменение параметров безопасности «защищаемых объектов», таких как объекты базы данных, также требует некоторых административных привилегий, но они могут быть связаны с владением базой данных и, следовательно, могут быть доступны вам, даже если привилегии смены учетной записи недоступны.