1. 程式人生 > >MYSQL資料庫實驗(使用者與許可權管理)

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 ‘[email protected]’;

在這裡插入圖片描述
途中還遇到了密碼不安全的情況.

③ 刪除使用者(Welkin)

	drop user Welkin ;
  1. 使用者許可權管理
    ① 建立使用者Welkin,檢視他目前所擁有的許可權.

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

② 建立一個臨時資料庫(tempdb),並將所有操作許可權賦予使用者Welkin.

create database tempdb ;
grant all privileges on tempdb.* to [email protected]'%'  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  [email protected]'%' identified by 'Welkin@123456';
show grants for Welkin ;

五、評價分析及心得體會
通過本次實驗我掌握了資料庫表的建立和使用者管理,掌握了許可權的控制的方法,做了大量的練習,對語句之間的邏輯也有了充分的認識。對資料庫的認識也有了很大的進步,同時也掌握了這些操作。