One approach for this is to have the procedures owned by a datbase role. The role is given explicit permissions to create stored procedures. The users are then given permissions to be a member of the role. This way they can create or alter any stored procedure owned by the role. Once the procedure is moved to your production serever the users are just taken out of the role. The role must exist in the production environment. You also have to call the procedure by the fully qualified name.