Требуемое минимальное разрешение - ALTER для table_name. Разрешения TRUNCATE TABLE по умолчанию принадлежат владельцу таблицы, членам предопределенной роли сервера sysadmin и предопределенным ролям базы данных db_owner и db_ddladmin и не могут быть переданы. Однако вы можете включить оператор TRUNCATE TABLE в модуль, такой как хранимая процедура, и предоставить соответствующие разрешения модулю, используя предложение EXECUTE AS.
CREATE PROCEDURE dbo.usp_Demo
WITH EXECUTE AS 'CompanyDomain\SqlUser1'
AS
SELECT user_name();
Источник
Вы можете go через эту официальную документацию .