E2 Mysql的基本操作和用户权限

本文详细介绍了MySQL的安装、登录、用户创建、权限管理以及角色的使用。通过实例展示了如何创建用户、设置权限,使用GRANT和REVOKE操作,以及创建和分配角色。同时,给出了一个员工管理系统数据库的权限分配案例,强调了不同角色的权限边界和管理策略,强调了WITH GRANT OPTION的重要性。
摘要由CSDN通过智能技术生成

E2 Mysql的基本操作和用户权限

  • Mysql平台的基本操作和基本的权限管理。

  • Group 1: 安装Mysql for window or for linux
    (1)从Mysql网站下载软件;
    http://downloads.mysql.com/archives/installer/(mysql-installer-community-8.0.12.0.msi)
    (2)把它安装在你的电脑上;
    (3)设置windows环境路径;
    (4)启动Mysql服务器。

  • Group 2:登录Mysql服务器通过以下方法:
    (1) HeidiSQL
    (2) CDM:Mysql –u username -p
    (3)带IP地址的用户创建,然后链接Mysql
    解决方案:
    https://blog.csdn.net/u010026255/article/details/80062153

  • Group 3: mysql下创建一个新用户的方法:
    例子:创建用户“movie_user”@”*”by“123456”;
    用户名@IP地址用户只能该IP下才能访问
    用户名@192.168.1.%用户只能在该IP段下才能访问(通配符%表示任意)
    用户名@ %用户可以在任意IP下访问(默认IP地址为%)
    在这里插入图片描述
    在这里插入图片描述
    修改密码: set password for ‘用户名’@‘IP地址’ = ‘新密码’;
    自己修改密码:set password = ‘123’;
    在这里插入图片描述

  • Group 4:grant和revoke
    1.查看某个mysql用户的权限:show grants for ‘用户’@'IP地址
    在这里插入图片描述
    2、给某个用户授权:grant 权限 on 数据库.表 to ‘用户’@‘IP地址’;
    选择至少6种权限进行操作和验证。

    # 表示有所有的权限,除了grant这个命令,这个命令是root才有的。
    grant all privileges on db1.t1 to “mjj”@’%’;
    //all privileges 除grant外的所有权限,
    select 仅查权限
    select,insert 查和插入权限

    usage 无访问权限
    alter 使用alter table
    alter routine 使用alter procedure和drop procedure
    create 使用create table
    create routine 使用create procedure
    create temporary tables 使用create temporary tables
    create user
    // 使用create user、drop user、rename user和revoke all privileges
    create view 使用create view
    delete 使用delete
    drop 使用drop table
    execute 使用call和存储过程
    file 使用select into outfile 和 load data infile
    grant option 使用grant 和 revoke
    index 使用index
    insert 使用insert
    lock tables 使用lock table
    process 使用show full processlist
    select 使用select
    show databases 使用show databases
    show view 使用show view
    update 使用update
    reload 使用flush
    shutdown 使用mysqladmin shutdown(关闭MySQL)
    super 使用change master、kill、logs、purge、master和set global。还允许mysqladmin 调试登陆
    replication client 服务器位置的访问
    replication slave 由复制从属使用

    分别将仅查权限、insert权限、create权限、create view权限、撤销权限和删除权限赋予给movie_user这个用户:
    在这里插入图片描述
    进行select权限验证:
    在这里插入图片描述
    进行insert权限验证:
    在这里插入图片描述
    进行create权限验证:
    在这里插入图片描述
    在这里插入图片描述
    进行create view权限验证:
    在这里插入图片描述
    进行drop权限验证:
    在这里插入图片描述
    进行delete验证:
    在这里插入图片描述
    3、从某个用户收回权力并验证revoke:revoke priv_type on database.table from user
    在这里插入图片描述
    在这里插入图片描述

  • Group 5:Role角色模拟演示
    1、创建角色
    CREATE ROLE ‘app_developer’, ‘app_read’, ‘app_write’; --创建了3个角色
    在这里插入图片描述
    2、赋予角色权限
    GRANT ALL ON app_db.* TO ‘app_developer’; – 给app_db数据库中所有表的所有权限
    GRANT SELECT ON app_db.* TO ‘app_read’; – app_db数据库中所有表的查询权限
    GRANT INSERT, UPDATE, DELETE ON app_db.* TO ‘app_write’; --app_db数据库中所有表的修改权限
    在这里插入图片描述
    3、赋予账户角色
    创建4个用户
    CREATE USER ‘dev1’@‘localhost’ IDENTIFIED BY ‘dev1pass’;
    CREATE USER ‘read_user1’@‘localhost’ IDENTIFIED BY ‘read_user1pass’;
    CREATE USER ‘read_user2’@‘localhost’ IDENTIFIED BY ‘read_user2pass’;
    CREATE USER ‘rw_user1’@‘localhost’ IDENTIFIED BY ‘rw_user1pass’;
    在这里插入图片描述
    赋予角色
    GRANT ‘app_developer’ TO ‘dev1’@‘localhost’;
    GRANT ‘app_read’ TO ‘read_user1’@‘localhost’, ‘read_user2’@‘localhost’;
    GRANT ‘app_read’, ‘app_write’ TO ‘rw_user1’@‘localhost’;
    在这里插入图片描述
    4、角色激活
    查看当前会话已激活的角色
    SELECT CURRENT_ROLE();
    在这里插入图片描述
    设置默认激活的角色
    – 为下面4个用户默认激活所有已拥有的角色
    SET DEFAULT ROLE ALL TO
    ‘dev1’@‘localhost’,
    ‘read_user1’@‘localhost’,
    ‘read_user2’@‘localhost’,
    ‘rw_user1’@‘localhost’;
    在这里插入图片描述
    运行时激活:set role app_developer;
    在这里插入图片描述

  • Group 6: 综合实验
    假设有一个员工管理系统的数据库exam,包括以下表格: student, grade,course三个,分别表示学生表、成绩表和课程表,表格结构风别如下:
    Student(stuid, stuname, birthday, Classid); course(cid, canme, credit); grade(stuid,cid,score);
    1、root设计ManagerTeacher用户
    ManagerTeacher用户:该用户负责创建以上数据库及三个表,拥有所有的权限,并负责给所有任课老师、班主任和学生分别创建一个用户(每个用户创建2种角色),并根据要求进行角色构建与授权,使得他们拥有以下的访问权限(结合视图):
    任课教师:拥有该老师相关课程成绩的所有操作权限(已知任课老师与课程编号的对应关系);
    班主任:拥有查询他管理的班级的所有学生与成绩信息、所有课程信息;
    学生:拥有对该学生自身成绩信息的查询权限;
    2、验证您的权限设置。
    您可能根据角色的合理需求执行以下操作:创建角色、授予角色特权、create用户、授予用户角色、操作数据、验证设置。要求写下整个过程的所有合理步骤。
    步骤如下:
    使用root用户创建ManagrTeacher,然后ManageTeacher创建exam数据库和该数据库里面的三个表(student、course和grade);
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2、创建三个用户(学生student、任课老师instructor和班主任class_teacher),给学生分配两个角色select_role(用来查询成绩表)、view_role(用来查询学生表),给认可老师分配两个角色grade_role(关于成绩的所有操作)、course_role(关于课程的所有操作),给班主任两个角色class_role(关于班级学生和成绩的所有操作)、course_role(关于课程的所有操作),共五个角色。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3、验证学生的权限。
    在这里插入图片描述
    在这里插入图片描述
    4、验证任课教师的权限。
    在这里插入图片描述
    5、验证班主任的权限。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 总结:这次的实验让我们学习到了建立用户,建立角色,并将不同的角色分配给不同的用户,实现用户的不同功能、权限的控制,进一步体现了数据库管理的魅力。其中想要managerteacher用户能够进一步分配给其他人的话,记得root用户给managerteacher权限的时候加上with grant option(这很关键)。最后,我们在建立这样子的体系的过程中,一定要保证各个用户的功能,他们之间的区别、分界线。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值