Det finns ingen osignerad typ tillgänglig för dig, så du kan skapa en med UDT, eller välja den större datatypen. Om du gör det i en UDT kommer du att överskrida 4 byte igen.
Det extrema hacket skulle vara att tillämpa en offset automatiskt på ditt lagrade värde efter att du läst det, genom att lägga till -2^31 men detta är ett riktigt hackigt sätt att gå tillväga och förvirrande för alla som tittar på koden etc, för att inte tala om potentialen för misstag/saker som missas. Jag skulle inte rekommendera hacket alls.