Hello Alex. It is worth reading through the documentation Admin quick guide and particularly about roles, authentication and enrolment. The documentation on Assign roles might also have some pointers.
Basically, apart from the admin, users tend to have student or teacher role within courses, and not for the whole site. They sign up or are created as "authenticated users" and you can give them different roles in different courses - if you wish. Additionally, teachers only work within courses, adding teaching materials and activities; they don't "upload courses" if by that you mean actually create empty courses. There are other roles such as Course creators and managers which you can grant to people if you want them to play a greater part in creating courses from nothing - although you wouldn't make everyone that on a site ( a bit like "too many cooks spoil the broth". Have a read of the documentation Standard roles as well and ask more questions.
It is indeed possible to add empty courses with a CSV file and include users with the teacher role in those courses, so you quickly have, say ten courses, each with their own teacher, who can then edit the course and add the material they want. If that is all you need, then let us know and I can point you in the right direction.