Database systems play a very important role in computer science. Most software and mobile applications store and populate data on a server site. Relational databases dominate the professional market which requires students to be familiar with Structured Query Language (SQL). The client-server is the standard architecture in the database industry. Therefore, students are strongly motivated to have more hands-on SQL assignments and projects using a 3-tier architecture in database courses. For the best learning experience, each student should have his own tables and environment so that his data won't interfere with data from other students. However, it is difficult for teachers to manage individual privileges on every student's tables and SQL programs if the students are accessing a common (shared) database. This paper proposes a mechanism that students can use to create their database account and grant proper privileges by themselves. This minimizes the instructor's workload by eliminating the need to manage students' accounts and tables when teaching databases. Our proposal also provides an interface that allows students to perform exercises and allows the instructor to review and share students' real-time answers in class. Our methods will minimize the workload for grading SQL assignments when teaching databases, while providing students with the opportunity to practice with more lab assignments. Students can also verify whether their SQL statements are working or not using the same review module as the instructor. The results show that for assignments on simple SQL statements, grading efficiency is increased by at least 60%. This allows the instructor to increase the amount of assignments by 133%. As a result of this increased practice, the students' grades improved by 12%.