sqlsever 其中SQL sever版本为2019,在学生管理数据库中,创建用户u3,登录名与用户名相同,密码自行设定。u3可以查看每个学生的平均成绩,但是不能查看每个学生的成绩信息。
时间: 2023-08-31 08:25:35 浏览: 97
### 回答1:
这是一个比较典型的权限控制问题。您可以使用 SQL Server 的 GRANT 和 REVOKE 语句来为用户 u3 授权。首先,您需要创建一个视图,只包含每个学生的平均成绩,然后将该视图授权给用户 u3,同时撤销该用户对学生成绩信息的 SELECT 权限。下面是一个示例代码,您可以根据自己的需求进行修改:
-- 创建一个视图,只包含每个学生的平均成绩
CREATE VIEW avg_scores AS
SELECT student_id, AVG(score) AS avg_score
FROM scores
GROUP BY student_id;
-- 授予用户 u3 对视图 avg_scores 的 SELECT 权限
GRANT SELECT ON avg_scores TO u3;
-- 撤销用户 u3 对 scores 表的 SELECT 权限
REVOKE SELECT ON scores FROM u3;
这样,用户 u3 就可以查看每个学生的平均成绩,但是不能查看每个学生的具体成绩信息。希望这个回答能够解决您的问题。
### 回答2:
在学生管理数据库中创建用户u3,可以使用以下SQL语句:
CREATE LOGIN u3 WITH PASSWORD = 'password'; -- 创建登录名为u3的用户并设置密码
CREATE USER u3 FOR LOGIN u3; -- 创建用户名为u3的用户
GRANT SELECT ON 学生表 (平均成绩) TO u3; -- 允许u3用户查看学生表的平均成绩
DENY SELECT ON 学生表 (成绩) TO u3; -- 禁止u3用户查看学生表的成绩信息
通过以上步骤,就创建了一个名为u3的用户,该用户的登录名和用户名相同,密码为自行设定的密码。该用户可以查看学生表的平均成绩,但是不能查看学生表的成绩信息。
### 回答3:
在SQL Server 2019中创建用户u3,并设置其登录名与用户名相同。为了限制u3用户无法查看每个学生的成绩信息,但可以查看每个学生的平均成绩,可以按照以下步骤完成:
1. 首先,以SQL Server管理员的身份登录到SQL Server管理工具(如SQL Server Management Studio)。
2. 打开已创建的学生管理数据库,找到"安全性"文件夹,右键点击"用户",然后选择"新建用户"。
3. 在弹出的对话框中,输入用户名为u3,并选择“SQL Server身份验证”作为身份验证类型。
4. 在“输入密码”和“确认密码”字段中,输入u3用户的密码,然后确认密码。
5. 在左侧的“用户映射”标签页中,勾选学生管理数据库,并为u3用户分配所需的角色和权限。
6. 在下方的“类型”列中,找到“数据库角色”的行,点击下拉列表,选择“db_datareader”角色。
7. 然后点击“添加选中”按钮,u3用户将被添加到“所选的数据库角色”列表中。
8. 最后,点击“确定”按钮保存更改,完成u3用户的创建和权限设置。
这样,用户u3就能够登录学生管理数据库,查看每个学生的平均成绩。然而,他无法查看每个学生的具体成绩信息,只能看到平均成绩。
阅读全文