No hay ningún tipo sin firmar disponible para usted, por lo que puede crear uno utilizando el UDT u optar por el tipo de datos más grande. Si lo haces en una UDT vas a volver a pasar de los 4 bytes.
El truco extremo sería aplicar una compensación automáticamente a su valor almacenado después de leerlo, agregando -2 ^ 31, pero esta es una forma realmente complicada de hacerlo y confusa para cualquiera que vea el código, etc., sin mencionar el potencial por errores / cosas que se pierden. No recomendaría el truco en absoluto.