(6)用系统管理员zjutuser授予允许用户"TeaW"在表Reports中插入元组,更新Score列,可以查询除了Sno以外的所有列。以"TeaW"的身份登陆,用SQL语言插入更新并查询reports表,结果如何?(注意更新操作的授权)
时间: 2023-06-02 17:07:34 浏览: 260
这个问题属于数据库管理问题,可以回答。以下是SQL语句示例:
授予权限:GRANT INSERT, UPDATE(Score), SELECT(Sname, Ssex, Sage, Sdept, Cname, Tname, Score) ON Reports TO zjutuser;
插入元组:INSERT INTO Reports (Sname, Ssex, Sage, Sdept, Cname, Tname, Score) VALUES ('John', 'M', 20, 'CS', 'Database', 'Wang', 90);
更新Score列:UPDATE Reports SET Score = 80 WHERE Sname = 'John';
查询:SELECT * FROM Reports WHERE Sname = 'John';
结果为插入了一条Sname为John,其他信息符合要求的新元组,更新了John的Score为80,查询结果只返回Sno以外的所有列。因为TeaW被授予了相应的权限,在TeaW的身份下执行这些操作是可以成功的。
相关问题
给出授予允许用户"Teaw"在表Reports中插入元组,更新Score列,查询除了Sno以外的所有列权限的代码
假设你使用的是MySQL数据库,可以使用以下代码:
```sql
-- 授予插入权限
GRANT INSERT ON database_name.Reports TO 'Teaw'@'localhost';
-- 授予更新权限
GRANT UPDATE (Score) ON database_name.Reports TO 'Teaw'@'localhost';
-- 授予查询权限
GRANT SELECT (column1, column2, column3, column4) ON Reports TO 'Teaw'@'localhost';
```
其中,`database_name`是你的数据库名,`Reports`是你的表名,`column1`、`column2`、`column3`、`column4`是表中除了Sno以外的所有列名。
这样,用户Teaw就可以在表Reports中插入元组,更新Score列,查询除了Sno以外的所有列了。
(7)用户"CeduSA"授予用户"TeaW"对表Students插入和更新的权限,并且授予用户"TeaW"传播插入和更新操作的权利。分别以"CeduSA"和"TeaW"的身份登陆,用SQL语言验证以上授权操作,结果如何?
我能够回答这个问题。以下是验证授权操作的SQL语句:
在"CeduSA"用户登录下:
GRANT INSERT, UPDATE ON Students TO TeaW WITH GRANT OPTION;
在"TeaW"用户登录下:
INSERT INTO Students (student_id, name, major, grade) VALUES ('001', '张三', '计算机科学', '大一');
UPDATE Students SET grade = '大二' WHERE student_id = '001';
如果以上语句执行成功,则说明授权操作成功。
阅读全文