Even if SET IDENTITY_INSERT is executed inside a stored procedure that your user has permissions to run, that will not be sufficient. If the user does not have the proper permissions, you will still get an error message when the stored procedure reaches this statement.
One permission that is sufficient, at least in such a stored procedure context, is ALTER permission on the relevant table.