sharkiefff/RBAC-Text2SQL-Benchmark huggingface dataset:
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: Which student are enrolled in at least two courses? Give me the student ID and personal name.
Answer: SELECT T1.student_id ,  T2.personal_name FROM Student_Course_Enrolment AS T1 JOIN Students AS T2 ON T1.student_id  =  T2.student_id GROUP BY T1.student_id HAVING COUNT(*)  >=  2
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT T1.student_id ,  T2.personal_name FROM Student_Course_Enrolment AS T1 JOIN Students AS T2 ON T1.student_id  =  T2.student_id GROUP BY T1.student_id HAVING COUNT(*)  >=  2
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: Find the student ID and middle name for all the students with at most two enrollments.
Answer: SELECT T1.student_id ,  T2.middle_name FROM Student_Course_Enrolment AS T1 JOIN Students AS T2 ON T1.student_id  =  T2.student_id GROUP BY T1.student_id HAVING COUNT(*)  <=  2
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT T1.student_id ,  T2.middle_name FROM Student_Course_Enrolment AS T1 JOIN Students AS T2 ON T1.student_id  =  T2.student_id GROUP BY T1.student_id HAVING COUNT(*)  <=  2
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: What are the student IDs and middle names of the students enrolled in at most two courses?
Answer: SELECT T1.student_id ,  T2.middle_name FROM Student_Course_Enrolment AS T1 JOIN Students AS T2 ON T1.student_id  =  T2.student_id GROUP BY T1.student_id HAVING COUNT(*)  <=  2
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT T1.student_id ,  T2.middle_name FROM Student_Course_Enrolment AS T1 JOIN Students AS T2 ON T1.student_id  =  T2.student_id GROUP BY T1.student_id HAVING COUNT(*)  <=  2
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: Find the personal names of students not enrolled in any course.
Answer: SELECT personal_name FROM Students EXCEPT SELECT T1.personal_name FROM Students AS T1 JOIN Student_Course_Enrolment AS T2 ON T1.student_id  =  T2.student_id
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT personal_name FROM Students EXCEPT SELECT T1.personal_name FROM Students AS T1 JOIN Student_Course_Enrolment AS T2 ON T1.student_id  =  T2.student_id
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: Which students not enrolled in any course? Find their personal names.
Answer: SELECT personal_name FROM Students EXCEPT SELECT T1.personal_name FROM Students AS T1 JOIN Student_Course_Enrolment AS T2 ON T1.student_id  =  T2.student_id
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT personal_name FROM Students EXCEPT SELECT T1.personal_name FROM Students AS T1 JOIN Student_Course_Enrolment AS T2 ON T1.student_id  =  T2.student_id
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: How many students did not have any course enrollment?
Answer: SELECT count(*) FROM Students WHERE student_id NOT IN (SELECT student_id FROM Student_Course_Enrolment)
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT count(*) FROM Students WHERE student_id NOT IN (SELECT student_id FROM Student_Course_Enrolment)
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: Count the number of students who did not enroll in any course.
Answer: SELECT count(*) FROM Students WHERE student_id NOT IN (SELECT student_id FROM Student_Course_Enrolment)
Permission: allowed (All required columns are permitted)
Gold SQL: SELECT count(*) FROM Students WHERE student_id NOT IN (SELECT student_id FROM Student_Course_Enrolment)
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: Find the common login name of course authors and students.
Answer: Sorry, I cannot answer.
Permission: denied (Missing column permissions: students: login_name)
Gold SQL: SELECT login_name FROM Course_Authors_and_Tutors INTERSECT SELECT login_name FROM Students
##Instruction:
Database: e_learning
Total Tables: 6
Total Columns: 32

Table Schemas:

e_learning contains tables such as Course_Authors_and_Tutors, Students, Subjects, Courses, Student_Course_Enrolment, Student_Tests_Taken.
Table Course_Authors_and_Tutors has columns such as author_id, author_tutor_ATB, login_name, password, personal_name, middle_name, family_name, gender_mf, address_line_1.
author_id is the primary key.
Table Students has columns such as student_id, date_of_registration, date_of_latest_logon, login_name, password, personal_name, middle_name, family_name.
student_id is the primary key.
Table Subjects has columns such as subject_id, subject_name.
subject_id is the primary key.
Table Courses has columns such as course_id, author_id, subject_id, course_name, course_description.
course_id is the primary key.
Table Student_Course_Enrolment has columns such as registration_id, student_id, course_id, date_of_enrolment, date_of_completion.
registration_id is the primary key.
Table Student_Tests_Taken has columns such as registration_id, date_test_taken, test_result.
The subject_id of Courses is the foreign key of subject_id of Subjects.
The author_id of Courses is the foreign key of author_id of Course_Authors_and_Tutors.
The student_id of Student_Course_Enrolment is the foreign key of student_id of Students.
The course_id of Student_Course_Enrolment is the foreign key of course_id of Courses.
The registration_id of Student_Tests_Taken is the foreign key of registration_id of Student_Course_Enrolment.

##Role Access Policy (Column-Level):
Role: CourseTutor
Accessible Columns: Course_Authors_and_Tutors: author_id, personal_name, middle_name, family_name; Students: student_id, personal_name, middle_name, family_name; Courses: course_id, course_name; Student_Course_Enrolment: registration_id, student_id, course_id, date_of_enrolment, date_of_completion; Student_Tests_Taken: registration_id, date_test_taken, test_result

Based on the above schema and your role's column-level access policy, generate a SQL query to answer the question. If your role does not have access to the required columns, respond with: "Sorry, I cannot answer."


Question: What are the login names used both by some course authors and some students?
Answer: Sorry, I cannot answer.
Permission: denied (Missing column permissions: students: login_name)
Gold SQL: SELECT login_name FROM Course_Authors_and_Tutors INTERSECT SELECT login_name FROM Students