数据库的安全管理

本文详细介绍了如何在MySQL中创建、管理用户账号,设置权限,包括创建、查看、修改和删除用户,以及角色的创建与权限分配。还涉及存储过程的使用和权限的授予与撤销。实验中探讨了用户、角色和权限的关系以及WITHGRANTOPTION选项的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库的安全管理

一、实验目的

  1. 掌握用户账号的创建、查看、修改、删除的方法。
  2. 掌握用户权限设置方法。
  3. 掌握角色的创建、删除方法。
    二、实验内容
  4. 用户账号的创建、查看、修改、删除的SQL语句。
  5. 用户权限设置SQL语句。
  6. 角色的创建、删除SQL语句。
    三、实验步骤
  7. 在本地主机创建用户账号st_01,密码为123456。
    CREATE user st_01@localhost IDENTIFIED by ‘123456’;
    2.查看MySQL下所有用户账号列表。
    USE mysql;
    SELECT * FROM user;
    在这里插入图片描述

3.修改用户账号st_01的密码为111111。
SET PASSWORD FOR st_01@localhost=‘111111’;
4. 使用studentsdb数据库中的student_info表。
(1)授予用户账号st_01查询表的权限。
GRANT SELECT ON TABLE studentsdb.student_info
TO st_01@localhost ;
(2)授予用户账号st_01更新家庭住址列的权限。
GRANT UPDATE(家族住址) ON TABLE student.student_info
TO st_01@localhost;
(3)授予用户账号st_01修改表结构的权限。
GRANT ALTER ON student.student_info
TO st_01@localhost;
5. 使用studentsdb数据库中的student_info表。
(1)创建存储过程cn_proc,统计student_info表中的学生人数。
DELIMITER @@
CREATE PROCEDURE cn_proc()
BEGIN
SELECT COUNT(*) FROM student_info;
END@@
DELIMITER;

(2)授予用户账号st_01调用cn_proc存储过程的权限。
GRANT EXECUTE ON PROCEDURE STUDENTDB.CN_PROC
TO st_01@localhost;
(3)以用户账号st_01连接MySQL服务器,调用cn_proc存储过程查看学生人数。
CALL CN_PROC();
在这里插入图片描述

  1. 使用studentsdb数据库。
    (1)授予用户账号st_01在studentsdb数据库上创建表、删除表、查询数据、插入数据的权限。
    (2)以用户账号st_01连接MySQL服务器,创建新表st_copy,与表student_info完全相同。
    (3)以用户账号st_01连接MySQL服务器,删除表st_copy。
    GRANT CREATE,DROP,SELECT,INSERT ON studentdb
    TO st_01@localhost;
    DROP TABLE st_copy;
    7.撤消用户账号st_01在studentsdb数据库上创建表、删除表、查询数据、插入数据的权限。
    REVOKE CREATE,DROP,SELECT,INSERT ON studentdb.student_info
    FROM st_01;
    8.撤消用户账号st_01所有权限.
    REVOKE ALL PRIVILEGES,GRANT OPTION
    FROM st_01@localhost;
  2. 使用studentsdb数据库中的student_info表。
    (1)创建本地机角色student。(MySQL 8.0版本可做)
    (2)授予角色student查询student_info表的权限。(MySQL 8.0版本可做)
    (3)创建本地机用户账号st_02,密码为123。
    (4)授予用户账号st_02角色student的权限。
    (5)以用户账号st_02连接MySQL服务器,查看student_info表信息。
    (6)撤消用户账号st_02角色student的权限。
    (7)删除角色student。(MySQL 8.0版本可做)
    use mysql;
    CREATE ROLE ‘student’@‘localhost’;
    (2)
    grant select on studentdb.student_info
    to ‘student’@‘localhost’;
    (3)
    create user st_02@localhost identied by ‘123’;
    (4)
    grant ‘student’@‘localhost’ to st_02@localhost;

(5)
select * from studentdb.student_info;
(6)
revoke all privileges,grant option
from ‘student’@‘localhost’;
(7)
drop role ‘student’@‘localhost’;
9.删除用户账号st_01、st_02。
DROP user st_01@localhost,st_02@localhost;
四、实验思考

  1. 用户账号、角色和权限之间的关系是什么?没有角色能给用户授予权限吗?
    给用户赋予角色,给角色赋予权限。没有角色不能给用户授予权限。
  2. 角色在用户账号连接服务器后自动被激活的设置方法。
    set global activate_all_roles_on_login=ON;
    4.with grant option选项的作用是什么?
    WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。
    五、实验总结
    1、收获
    通过这次实验,掌握了用户创建和授权方法,理解了数据库安全性的内容,学会了创建登录用户并向其授予数据库访问权限。
    2、存在的问题
    刚开始时没有分清登录账号和用户账号之间的差别。
一、实验目的 使学生加深对数据库安全性和完整性的理解。并掌握SQL Server中有关用户、角色及操作权限的管理方法。熟悉通过SQL语句对数据进行完整性控制。 二、实验内容和要求   数据库安全实验,在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQL Server的用户和角色管理,设置和管理数据操作权限。   具体内容如下:   设置SQL Server的安全认证模式(Windows或SQL Server和Windows(S)认证模式)。   登录的管理 创建一个登录用户   数据库用户的管理 登陆用户只有成为数据库用户(Database User)后才能访问数据库。每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。通过系统存储过程或企业管理器可以创建新的数据库用户。   角色的管理 创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。   在学生表中定义主键、外键约束。   在课程表的“课程名”字段上定义唯一约束。   在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100.“课程号”字段只能输入数字字符。   定义规则,并绑定到读者表的“性别”字段,使之只能取“男、女”值。   在学生表中增加出生日期字段。定义缺省,并绑定到借阅表的“借阅日期”上,使之只能取当前日期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值