数据库第四章:授权与权限管理习题解析

需积分: 0 0 下载量 31 浏览量 更新于2024-08-04 收藏 1.97MB DOCX 举报
在本篇数据库第四章课后习题中,针对15级计算机一班的任毅同学,我们讨论了如何使用SQL的GRANT和REVOKE语句进行用户权限管理和角色授权。以下是四个具体的练习问题及其解决方案: 1. **授予用户U1权限并可转授** - 首先,创建用户U1并设置密码,然后分别授予学生表(Student)和班级表(Class)的所有权限,并赋予U1可以将这些权限转授给其他用户的权限。 - 使用`GRANT ALL PRIVILEGES`语句,配合`WITH GRANT OPTION`来实现这一点。 2. **授予用户U3特定权限** - 对于用户U3,仅授予查看学生表(Student)的权限以及更新家庭住址(Saddress)的权限。这通过`GRANT UPDATE (Saddress), SELECT`来指定特定操作。 3. **将权限授予所有用户** - 若要将查看班级表(Class)的权限授予所有用户,使用`GRANT SELECT`语句不指定接收者,意味着它将被自动授予所有用户。 4. **角色R1的权限分配与继承** - 创建角色R1并将其授予用户U1,同时允许U1继续将权限转授给其他角色。使用`EXEC sp_addrolemember`系统存储过程实现角色成员的添加。 对于题目中额外的两个用户(王明和李勇),权限分配如下: - **用户王明的SELECT权限** - 创建用户Wang,设置密码,然后分别赋予Employee和Department表的SELECT权限。 - `GRANT SELECT ON Employee TO Wang;` - `GRANT SELECT ON Department TO Wang;` - **用户李勇的INSERT和DELETE权限** - 用户Li获得对Employee和Department表的INSERT和DELETE操作的权限。 - `CREATE LOGIN Li WITH PASSWORD = 'li';` - `CREATE USER Li FOR LOGIN Li;` - `GRANT INSERT ON Employee TO Li;` - `GRANT DELETE ON Employee TO Li;` - `GRANT INSERT ON Department TO Li;` - `GRANT DELETE ON Department TO Li;` 这些练习涵盖了SQL中的基本权限管理,包括对用户、角色和权限的授予、撤销以及不同操作的指定,是理解关系数据库系统权限控制的重要实践。通过这些操作,数据库管理员能够有效地控制对数据的访问,确保数据安全。