Hola xian,
Me parece un buen enfoque, aunque para el filtrado yo preferiría usar una tabla de BBDD con todos los tipos/usuarios.
Si optas por los ficheros en el Diccionario de Datos, ten en cuenta incorporar seguridad a esos ficheros para que ningún usuario pueda tocarlos (podría asignarse más tipos de los que le corresponde).
Y después, en función de la cantidad de restricciones que haya miraría de hacer la diferencia o no. Es decir, la tabla (o en tu caso, el fichero) podría contener los tipos que NO puede acceder el usuario (por lo que la secuencia sería como la has indicado antes: Del total resto el fichero) o bien, podría contener los tipos a los que únicamente tiene acceso, obteniendo directamente de la BBDD (o del fichero) los tipos accesibles.
Ambos enfoques tienen ventajas y desventajas, depende del número de tipos que tengas actualmente y de cuánto se prevea el crecimiento de tipos…
Saludos!!