SQL教程:授权与撤销操作实践

0 下载量 71 浏览量 更新于2024-08-30 收藏 152KB PDF 举报
在数据库作业11的SQL练习7中,主要讨论了四个关于GRANT、REVOKE和AUDIT操作的部分。首先,让我们从【4.1】开始,这里涉及的是权限的授予。通过标准SQL(如`GRANT SELECT ON TABLE Student TO U1;`)或T-SQL语法,管理员将SELECT权限赋予用户U1,以便他们能查询Student表。然而,在SQL Server中,需要注意的是,当指定对象(如TABLE)时,可能需要明确指明所属的数据库(如`ON Student (数据库名) TO U1`),因为`TABLE`关键字可能会被解释为系统关键字,导致错误。在尝试执行查询时,如果用户登录到非授权的数据库(如误选master而非Student),可能会遇到权限被拒绝的问题。 【4.2】扩展到多表操作,管理员将全部权限(ALL PRIVILEGES)授予用户U2和U3。标准SQL语句的形式是`GRANT ALL PRIVILEGES ON TABLE Student, Course TO U2, U3;`,这意味着U2和U3可以对Student和Course表执行所有操作,包括查询(SELECT)、插入(INSERT)等。但要注意,SQL Server语法要求权限操作针对单个表,不能同时作用于多个表。 【4.3】进一步探讨公共权限的分配,`GRANT SELECT ON TABLE SC TO PUBLIC;`将查询权限授予所有用户,这在U6中验证无误,表明无论哪个用户都可以执行`SELECT * FROM SC`。 【4.4】最后,针对特定权限的细粒度控制,管理员为用户U4设置了更新学生学号(Sno)和查询(SELECT)权限,但使用了标准SQL语法的特定列引用,即`GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;`。这意味着U4只能更新Student表中的Sno字段,而不能对整个表执行所有操作。 这些练习强调了在SQL中正确授予和管理权限的重要性,以及注意数据库上下文和权限的粒度控制,这对于数据库管理员和开发人员来说是必不可少的基础技能。通过这些实践,学生可以加深理解SQL语法规则以及权限管理的逻辑,确保数据的安全性和完整性。