• In the example below, I've created a stored procedure called [acct_staging_truncate] which truncates a table. The user 'acctmaint' is db_owner, and user 'JoeSchmo' is a public member with no permissions except execution on the procedure [acct_staging_truncate].

    create procedure acct_staging_truncate

    with execute as 'acctmaint'

    as

    truncate table acct_staging;

    go

    grant exec on acct_staging_truncate to JoeSchmo;

    go

    I've confirmed that JoeSchmo can execute the procedure successfully, but he can't truncate, select, or anything else directly on the table.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho