实验: 数据库安全性实验
一、实验目的
- 创建表和用户管理
创建表单是数据库中最基本的操作,也是使用比较频繁的操作,因此必须掌握SQL的(CREATE语句)的使用方法。而对于用户的管理操作更是一名合格的DBA所必须掌握的.本实验就要求掌握并熟悉这两项基本技能. - 用户权限管理
为了保证数据库的安全性,每个DBMS都为系统针对于每一个用户设计了权限管理来保证数据安全.本实验就要求掌握对用户权限管理的的操作方法。
二、实验环境
MYSQL
三、实验前准备
(1)准备电脑,课本(数据库系统概论第五版)
(2)了解创建表单和用户管理的命令
(3)了解操作用户权限的命令
四、实验内容与步骤
- 创建表和用户管理
(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 ;
-
用户权限管理
① 创建用户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 ;
五、评价分析及心得体会
通过本次实验我掌握了数据库表的创建和用户管理,掌握了权限的控制的方法,做了大量的练习,对语句之间的逻辑也有了充分的认识。对数据库的认识也有了很大的进步,同时也掌握了这些操作。