Não há nenhum tipo não assinado disponível para você, portanto, você pode criar um usando o UDT ou optar pelo tipo de dados maior. Se você fizer isso em um UDT, você excederá os 4 bytes novamente.
O truque extremo seria aplicar um deslocamento automaticamente ao seu valor armazenado depois de lê-lo, adicionando -2 ^ 31, mas essa é uma maneira realmente hacky de fazer isso e confusa para quem visualiza o código etc., sem mencionar o potencial por erros / coisas que estão sendo perdidas. Eu não recomendaria o hack de forma alguma.