zoukankan      html  css  js  c++  java
  • MYSQL数据库实验(用户与权限管理)

    实验: 数据库安全性实验

    一、实验目的

    1. 创建表和用户管理
      创建表单是数据库中最基本的操作,也是使用比较频繁的操作,因此必须掌握SQL的(CREATE语句)的使用方法。而对于用户的管理操作更是一名合格的DBA所必须掌握的.本实验就要求掌握并熟悉这两项基本技能.
    2. 用户权限管理
      为了保证数据库的安全性,每个DBMS都为系统针对于每一个用户设计了权限管理来保证数据安全.本实验就要求掌握对用户权限管理的的操作方法。

    二、实验环境
    MYSQL

    三、实验前准备
    (1)准备电脑,课本(数据库系统概论第五版)
    (2)了解创建表单和用户管理的命令
    (3)了解操作用户权限的命令

    四、实验内容与步骤

    1. 创建表和用户管理
      (1)登录MYSQL数据库,创建三个表
      ① 在数据库Tattoo中创建三个表,分别是学生表Student、课程表Course、学生选课表SC,约束以及属性如课本79页。
      1. SQL语句
    drop  database if  exists  Tattoo ;
    create  database Tattoo ;     /*创建数据库*/
    use Tattoo ;
    
    drop table if exists Student ;    /*学生表*/
    create table Student ( Sno CHAR(9)  PRIMARY KEY ,
    Sname CHAR(32) ,Ssex CHAR(2),
    Sage SMALLINT, Sdept CHAR(32) ) ;
    
    drop table if exists Course ;    /*课程表,Cpno 先修课,Ccredit 学分*/
    create table Course ( Cno CHAR(4)  PRIMARY KEY ,
    Cname CHAR(40) NOT NULL ,Cpno CHAR(4),
    Ccredit SMALLINT,
        FOREIGN KEY (Cpno) REFERENCES Course(Cno) 
    );
    /*Cpno 参照Course 的Cno 那一列 */
    
    drop table if exists SC ;    /*学生选课表*/
    create table SC ( Sno CHAR(9) ,Cno CHAR(4),Grade SMALLINT ,
        PRIMARY KEY(Sno,Cno), 
        FOREIGN KEY (Sno) REFERENCES Student(Sno),
        FOREIGN KEY (Cno) REFERENCES Course(Cno)
    );
    

    运用了一些SQL编程的方法,很野蛮,但很实用!!!!!
    2. 执行结果
    在这里插入图片描述

    ② 查看所有用户,创建(用户Welkin)以及删除用户.
    1.初始状态(查看所有用户)

    use mysql;
    select User from user;
    

    在这里插入图片描述

    2. 创建用户(Welkin)

    	Create user Welkin identified by ‘Welkin@123456’;
    

    在这里插入图片描述
    途中还遇到了密码不安全的情况.

    ③ 删除用户(Welkin)

    	drop user Welkin ;
    
    1. 用户权限管理
      ① 创建用户Welkin,查看他目前所拥有的权限.

       select * from user where user='Welkin' G; 
      

    ② 创建一个临时数据库(tempdb),并将所有操作权限赋予用户Welkin.

    create database tempdb ;
    grant all privileges on tempdb.* to Welkin@'%'  identified by 'Welkin@123456';
    flush privileges ;
    select user,db,select_priv,insert_priv,update_priv_priv from db wher
    e user='Welkin';
    

    在这里插入图片描述
    附录:几个需要用到的英文单词
    Privileges :特权
    Grant:发放

    ③ 收回用户Welkin对于数据库tempdb的所有权限
    revoke :撤消

    revoke all privileges on tempdb.* from Welkin@'%';
    flush privileges ;
    

    在这里插入图片描述

    ④ 赋予用户Welkin对于表tempdb数据库的数据表temptable可查询的权限

    use  tempdb ;
    create table temptable (inttest INT); 
    grant select  on tempdb.temptable to  Welkin@'%' identified by 'Welkin@123456';
    show grants for Welkin ;
    

    五、评价分析及心得体会
    通过本次实验我掌握了数据库表的创建和用户管理,掌握了权限的控制的方法,做了大量的练习,对语句之间的逻辑也有了充分的认识。对数据库的认识也有了很大的进步,同时也掌握了这些操作。

  • 相关阅读:
    java 反射 invoke()的异常问题记录
    windows安装nginx可视化工具nginxWebUI
    Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(三)(添加增删改查)
    Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(二)(添加日志打印和源码地址)
    Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(一)
    mac + docker+单击clickhouse+Dbeaver安装全套
    线程中使用for循环的add或remove方法的两种方案
    map数据按照list排序
    oracle dbca 【bug】:JAVA_JIT_ENABLED=false
    Ubuntu(Debian):apt-get:处理repository数字签名无效、过期、没有签名:即 如何强制 apt-get update?
  • 原文地址:https://www.cnblogs.com/Tattoo-Welkin/p/10335246.html
Copyright © 2011-2022 走看看