更新申请 SET Accepted ='YES' WHERE stID IN(SELECT stID FROM Student WHERE Grades> 3.9);
所以问题是授予用户需要成功运行此代码的权限。
我的猜测是:
应用程序的UPDATE权限,应用程序上的SELECT和学生上的SELECT,因此不需要学生更新。
这个问题询问是否需要在应用程序上使用SELECT(?)(由于WHERE部分)并且需要学生更新(我很确定这个是否为)。
另一个问题是:
query:DELETE FROM Student WHERE stID NOT IN(SELECT stID FROM Application)
问题:不需要以下哪些特权? a)删除学生
b)选择学生
c)删除申请
d)选择应用程序
主要是这些答案是我需要确定的,只是询问你的意见。
答案 0 :(得分:1)
应用程序的UPDATE权限,应用程序上的SELECT和SELECT上的权限 学生,因此不需要学生更新。
那是对的。
由于WHERE子句,问题是否需要SELECT on Application(?)(因为 WHERE部分)
Application上需要SELECT权限。像这样的更新声明
update application set accepted = 'yes';
不需要SELECT权限。
并且需要学生更新(我很确定这个是否定的)。
没有人试图更新学生。
不需要学生的UPDATE权限。这一切都很容易测试。安装免费的开源数据库,如PostgreSQL。打开两个会话。以超级用户身份连接到另一个,并作为测试用户连接到另一个。使用超级用户会话授予和撤消权限,使用测试会话执行查询。