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 ;

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

posted @ 2018-12-29 11:54  Tattoo_Welkin  阅读(743)  评论(0编辑  收藏  举报