To expand on this a bit, there are definitely options to limit what role teachers can give someone they are adding to their course.
What I don't think is possible is to restrict what users they can add in those roles as long as the users exist in Canvas. Users don't generally have roles themselves, rather the roles are defined by course enrollments (for example, I could be a teacher in course A, but a student in course B). We don't allow anyone other than admins to add people to a course in any role for this specific reason... In the past we've had faculty add students in various roles, add others who were not authorized to be in a course, etc...
We now have a google form teachers can fill out requesting an additional person in their course, and then an admin evaluates the information and decides whether to add the person, reach out for more info, or deny the request. This is done manually right now, but I think some automation could be done through Google Scripts if I had some time to learn more and experiment with them.
Hope this info helps!
-Chris