第十一章 資料庫設計與權限設定.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
MySQL 基础技能与原理 —— 基础技能 MySQL DBA Team 彭立勋( )
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
PHP 训练营 - MySQL OA 产品部 李鑫辉 2011 年 9 月. 内容提要 & 目录 1. 介绍 (10 分钟 ) 1.1. 简介 1.2. 特点 1.3. 安装 2. 语法 (60 分钟 ) 2.1. 存储引擎 MyISAM InnoDB 特点与区别.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
SQL 入门 SQL:Structured query language 北京传智播客教育.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
第八讲 基于Hadoop的数据仓库Hive (PPT版本号:2016年4月6日版本)
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
OceanBase 0.4:从API到SQL 日照
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
MySQL 使用者名稱:USERNAME (上限16個字元)
MySQL資料庫安全管理.
第4讲 MySQL服务器的配置与应用.
Xoops架站器介紹 基隆市教育網路中心 王言俊 按一下以新增備忘稿.
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
计算机应用基础 上海大学计算中心.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
Google App Engine Google 應用服務引擎.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
資料庫管理 HOMEWORK #3 楊立偉教授 台灣大學工管系 2013 Fall.
Introduction to PHP part3
安裝 WAMP5 PHP 網頁必須要有 WWW 伺服器及 PHP 語法解析程式才能運作, 但一般人通常不會在自己的電腦上安裝 WWW 伺服器。 因此本節要介紹如何架設一個可執行 PHP 的 WWW 伺服器, 以方便測試自己撰寫的 PHP 網頁, 提高學習效率。
課程名稱:資料庫系統 授課老師:李春雄 博士
PHP與MySQL 入門學習指南 凱文瑞克 著 第 23 章 資料型別.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
基于Hadoop的数据仓库Hive.
課程名稱:資料庫系統 授課老師:李春雄 博士
Chap 10 SQL定義、操作與控制指令.
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
SQL Server 2000 数据库入门.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
資料庫管理 HOMEWORK #3 楊立偉教授 台灣大學工管系 2015 Fall.
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
操作資料庫 教授:楊維邦 教授 助教:黃存賢 陳廷宣.
浅谈MySql索引及锁的应用 厦门大学数据库实验室 刘颖杰 2014年3月8日.
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
資料庫管理 HOMEWORK #4 楊立偉教授 台灣大學工管系 2014 Fall.
第3章 关系数据库标准语言SQL.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
Ch4.SQL Server 2005資料庫組成員元件介紹
使用PHP來操作資料庫 教授:楊維邦 教授 助教:李政均、劉秋良.
实验二讲评 … 张榆….
第 10 章 数据库编程.
第20章 MySQL数据库.
数据库技术与应用.
MySQL开发规范 DB组-张浩.
雲端計算.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
第12章 MySQL資料庫系統的使用 12-1 網頁資料庫的基礎 12-2 MySQL資料庫系統
本學期資訊系統開發專案之技術架構.
用int类型(4字节)去存具体时间(8字节).
OceanBase 0.4:从API到SQL 日照
第六類 資料庫備份與回復.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
Lesson 4 :基礎應用一(計數器) (2005/01/27).
課程名稱:資料庫系統 授課老師:李春雄 博士
第4章 数据查询.
Presentation transcript:

第十一章 資料庫設計與權限設定

章節目錄 建立資料庫 建立資料表之前談MySQL資料型態 建立資料表 帳號權限調整 本章結論 重點提示 問題與討論

建立資料庫 以終端機登入的方式建立資料庫 以phpMyAdmin網頁登入方式建立資料庫 返回章節目錄

以終端機登入的方式建立資料庫-1/3 登入的方式有兩種: 第一種是輸入「mysql –u帳號 –p密碼」,密碼會顯示。 預設目前只有root這個帳號,而密碼預設為「phpmysql」,請以「mysql –uroot -pphpmysql」方式登入系統,若密碼不同請自行更換。 若已有其他具資料庫管理權限的帳號,也可使用其他帳號登入。

以終端機登入的方式建立資料庫-2/3 MySQL預設提供「mysql」與「test」這兩個資料庫: 「mysql」資料庫是系統資料庫,不能移除。 「test」資料庫是公用資料庫,提供給大家測試之用。 建立資料庫之前可先使用「show databases;」瞭解系統 目前有幾個資料庫。而建立一個資料庫的語法為「create database 資料庫名稱;」。 欲建立一個名為「pcschool」的資料庫,請用「create database pcschool;」語法建立。

以終端機登入的方式建立資料庫-3/3 返回建立資料庫

以phpMyAdmin網頁登入方式建立資料庫-1/3 請建立「pcschool2」這個資料庫,而MySQL連線校對請選「utf8-general_ci」,再按下「建立」即可。

以phpMyAdmin網頁登入方式建立資料庫-2/3

以phpMyAdmin網頁登入方式建立資料庫-3/3 「phpMyAdmin」是一套管理MySQL Server的PHP網頁系統,「phpMyAdmin」不是「MySQL Sever」,兩者不能混為一談。 連線校對代表字元編碼的比較,基本上只要與您預設的資料庫編碼相同就可以。 MySQL在4.0版之前預設的編碼是拉丁,當時MySQL不做編碼檢查,網頁丟什麼資料過來,MySQL就照單全收。 MySQL 4.1版之後不僅預設編碼為utf8,而且可在資料庫、資料表、欄位分別設定不同的編碼,而資料傳遞過程中也會檢查編碼。這樣做的目的是可讓資料庫儲存不同語系的資料,而MySQL檢查編碼的動作也可讓資料接收或送出時能確保資料編碼的正確性,所以在MySQL 4.1之後才會有「連線校對」的項目出現。 MySQL在各階段是如何處理資料的編碼,這將於第十六章介紹。 返回建立資料庫

建立資料表之前談MySQL資料型態 建立資料庫之後就可建立資料表,而建立資料表時必須建立欄位。 我們在建立資料表之前,得先瞭解欄位的資料型態,否則資料表就 無法順利的建立。 MySQL的資料形態可分為幾大類:數字、文字、日期時間、列舉等 資料形態。 數字型態 日期時間型態 字串型態 列舉型態 返回章節目錄

數字型態-1/4 數字型態的資料,有多個型態可以選擇。 數字類型裡標示「L」指的是「整數位數」,最大為255。 數字類型裡標示「D」指的是「小數位數」。 除decimal(L,D)型態外,其他資料型態沒有強制規定要加上L或D。 而unsigned屬性代表可設定為正整數,若設定時加上「zerofill」代 表表示位數不足補0,如int(5)話,且設為zerofill,則存49這個數字, 資料庫會將之存成00049。

數字型態-2/4 tinyint若為正整數型態也只能到255,所以適合超小數值資料,例如:成績。 smallint就比tinyint大多了,正整數型態可到六萬多,所以適合小數值資料,例如:物品價錢。 mediumint 的正整數可以計算到1600萬左右的數字,適合中型數值,例如:公司銷售金額統計。 int的正整數已經可以用到42億左右的數字,您可評估網站資料是否需要用到「億」這樣的單位。 如果int的範圍還不夠,bigint的正整數已經可以用到18萬兆這麼大的數字,除非您的資料有使用到這麼大的單位,否則建議建立資料表時不要設計成這樣的欄位。

數字型態-3/4 float能夠記錄小數點,例如成績計算就可用此欄位設計。 double和float的用途一樣,但double所用掉的空間是float的兩倍,除非特別需要高精度或範圍極大的值,一般來說用float來儲存資料就夠了。 decimal類型不同於float和double,其有效的取值範圍由L和D的值決定。如果改變L而固定D,則其取值範圍將隨L的變大而變大。 整數型態的欄位可以加上auto_increment屬性。當您為整數型態欄位加上這個屬性後,MySQL就會每次新增記錄時為這個欄位指定「目前資料表內該欄位最大值」加1,設定為auto_increment屬性欄位通常設定為資料表的主索引。

數字型態-4/4 auto_increment屬性具有以下的特性: 這個屬性在「Not Null」、「Primary Key」或「Unique」這三種屬性至少具備一種的時候才能使用。(「Primary Key」及「Unique」將在11-3-1節及14-4節介紹) 一個資料表只能有一個auto_increment屬性。 只有在新增紀錄時,在沒有明確指定數值及沒有指定Null值情況下才會自動產生新編號。您可以手動為新紀錄指定數值,只要您指定的數值沒有被用掉就可以。 返回建立資料表之前談MySQL資料型態

日期時間型態-1/5 日期時間型態的欄位,可表示年、月、日、時間。 在以下的儲存方式介紹裡,Y代表「年」,YY代表「2位數的年」,如08年,YYYY代表「4位數的年」,如2008年,M代表「月」,D代表「日」,h代表「小時」,m代表「分」,s代表「秒」。 這裡將日期時間類型做成一張表如下:

日期時間型態-2/5 date類型可儲存日期資料,若欲輸入的日期為「2009年10月12日」,以下的輸入方式均可接受: 2009/10/12 2009-11-12 09/10/12 年月日之間有可以辨識的分隔符號就可以接受 或請依序輸入完整的年月日資料,例如「20091012」則系統也可接受。

日期時間型態-3/5 datetime類型可儲存日期時間資料。 若欲輸入的日期時間為「2005年1月28日早上3點58分」,以下的輸入方式均可接受: 2005/01/28 03:58:00 2005-1-28 03+58+00 年月日時分秒之間有可以辨識的分隔符號就可以接受 請依序輸入完整的年月日時分秒資料,例如「20050128035800」則系統也可接受。

日期時間型態-4/5 timestamp與datetime類型相似,但timestamp可以設定時間顯示的寬度:

日期時間型態-5/5 time類型只儲存時間資料,若欲輸入的時間為「15點7分20秒」,以下的輸入方式均可接受: 15:07:20 15.07.20 150720 只要時分秒之間有可以辨識的分隔符號就可以接受。 但若只有輸入「1135」,那麼會被當成「00:11:35」,換言之,若有位數不足的情況下,MySQL會自動在前方補0。 若欲輸入11時35分,該輸入什麼資料?請參考本書11-X頁說明。 返回建立資料表之前談MySQL資料型態

字串型態 字串型態的欄位設定均蠻相似的,請先參考字串型態之基本規格。 char與varchar text與blob blob限制與解決 返回建立資料表之前談MySQL資料型態

字串型態:char與varchar-1/4 char是固定長度字元資料型態。 char(5)則只能儲存5個字元資料,若超出範圍則無法儲存。 char(5)的欄位存入「pcschool」, 則只剩下「pcsch」這五個字。 如果資料內容少於設定儲存的長度,char會自動補上空白字元。 無論存入的內容長短為何,char所需的儲存空間都是固定的。 使用這種資料型態時請您確定字串不會超過某個範圍,例如IP都是固定15個位元組。

字串型態:char與varchar-2/4 varchar是個長度可變的型態。我們就舉以下的例子,來比較一下這兩 者的差異:

字串型態:char與varchar-3/4 varchar(5)欄位遇到「abcdefg」字串,該欄位只能存「abcde」。 若varchar(5)欄位儲存「abc」字串,會自動縮小所需空間,只要4個 bytes就夠了。 varchar與char最多只能設定到255。

字串型態:char與varchar-4/4 varchar與各種text與blob都是長度可變的型態。 當資料表中同時選用 cahr 和這類長度可變的型態時,char會被自動改 為 varchar,除非它的最大儲存長度少於 4。 若資料表中varchar 欄位的最大儲存長度少於 4 時,其型態也會被自動 改為char。 為什麼char與varcharchar在4bytes會自動作修改?請參考本書11-X頁 說明。 varchar與char的優點是什麼?請參考本書11-X頁說明。 返回字串型態

字串型態:text與blob 各種text欄位類型均適合用來儲存大容量資料,例如討論區、最新消息等等。除了空間大小不一樣,其餘皆相同。 blob或text在MySQL 3.23以後版本中可以進行索引,不過因為blob與text的內容甚多,且內容會因為更新等因素進行變更,筆者傾向不建議使用blob或text做索引,因為內容變化很大,若做為索引,反倒容易拖垮系統執行的速度。 返回字串型態

字串型態:blob限制與解決-1/3 blob欄位類型來儲存上傳的檔案在碰到檔案過大問題,畢竟65KB是不夠用的。但如果規劃成mediumblob欄位,雖可儲存大型圖檔,但有幾個限制必須解決。 1.MySQL資料庫傳送的封包大小限制:MySQL資料庫傳送的封包大小的限制預設是1Mb,所以雖將資料表欄位的型態設為mediumblob,傳遞超過1Mb的資料仍會發生錯誤,必須修改MySQL設定才能支援。請開啟主機內的my.ini(Windows環境)或my.cnf(Linux環境),修改以下片段,將傳輸的值改為4M,設定檔修改完成後請記得重新啟動MySQL Server。

字串型態:blob限制與解決-2/3 2.網頁傳送資料大小限制:一般而言,我們是透過網頁將資料送到MySQL資料庫內,所以雖然修改了MySQL設定,可以傳送的封包大小變大,但網頁處理仍會發生錯誤情形。 因此請開啟主機內的php.ini,修改以下的片段,將上傳資料的檔案大小改為4M,設定檔修改完成後請記得重新啟動WWW Server。

字串型態:blob限制與解決-3/3 如果傳輸資料時經常出現逾時(Timeout)回應,建議您也檢視主機 內的httpd.conf,將Timeout的時間加大(單位為秒),以避免逾時 情況發生,但不建議調整太大,免得網頁主機負擔過重。設定檔修 改完成後請記得重新啟動WWW Server。 返回字串型態

列舉型態 列舉(enumeration)型態可分為enum與set兩種。 enum是單選選項,您自己預設一些內容,該欄位只能存入您所設定 的內容之一。固定且單一答案的選項,適合使用enum資料欄位。 set和enum的差別,除了容量大小不同外(enum型態最多可以建立 65535 個不同的選項,而 set 型態只能建立 64 個不同的選項。), 另一個差異是set可以複選。 返回建立資料表之前談MySQL資料型態

建立資料表 以終端機登入型式建立 在phpMyAdmin 內以輸入SQL語法建立資料表 於phpMyAdmin內新增資料瞭解資料型態的差異 返回章節目錄

以終端機登入型式建立-1/5 當您以指令方式登入MySQL系統後,您可以輸入「show databases;」瞭解目前系統裡已經安裝了哪些資料庫,再請輸入「use 資料庫;」語法選擇資料庫,選擇資料庫後就可輸入「show tables;」瞭解這個資料庫內有哪些資料表。 建立資料表的方式如下:

以終端機登入型式建立-2/5 「欄位名稱」和「資料類型」都是必需的。 「欄位設定選項」則是 視情形存在。 常見的「欄位設定選項」有以下這些:

以終端機登入型式建立-3/5 前面提到的「索引」,指的是index,index是什麼呢?index就如同 書籤,可讓您加快資料的搜尋。 Primary與Unique兩種索引將於第十四章為各位分析介紹。

以終端機登入型式建立-4/5 MySQL資料庫引擎有MyISAM與InnoDB兩種常用的類型:

以終端機登入型式建立-5/5 請依本書第11-12頁在「pcschool」內建立一個「gbook」資料表, 這個資料表內所需要的欄位如下: 返回建立資料表

在phpMyAdmin 內以輸入SQL語法建立資料表 請於pcschool資料庫內建立資料表「test2」,而資料表內欄位規劃 如下表。步驟為: 1.請於phpMyAdmin左側點選「pcschool」資料庫。 2.請點選上方的SQL語法。 3.請依本書第11-13頁輸入SQL語法。 4.請按下「執行」鈕。 返回建立資料表

於phpMyAdmin內新增資料瞭解 資料型態的差異-1/4 pcschool資料庫的test2資料表四個欄位分屬於不同類型的欄位。 請您於phpMyAdmin內點選「pcschool」資料庫後點選「test2」資 料表,再請點選上方的「新增」,您會看到新增一筆資料的欄位清 單。而日期型態資料可透過點選方式選取,blob型態資料則以檔案上 傳的方式加入資料。

於phpMyAdmin內新增資料瞭解 資料型態的差異-2/4 3 1 2 1.點選「pcschool」資料庫 2.點選「test2」資料表 3.請點選上方的「新增」。

於phpMyAdmin內新增資料瞭解 資料型態的差異-3/4

於phpMyAdmin內新增資料瞭解 資料型態的差異-4/4 若輸入的資料超過原規劃欄位長度,資料會被裁切。 test1欄位規劃為 varchar(10)型態,所以只保留10個字 test2欄位規劃為tinyint(3)型態,而tinyint型態資料範圍 為-128到 127。 返回建立資料表

在phpMyAdmin 內以逐一建立欄位方式 建立資料表-1/4 請依本書第11-16頁在「pcschool」內建立一個「 vote 」資料表, 這個資料表內所需要的欄位如下:

在phpMyAdmin 內以逐一建立欄位方式 建立資料表-2/4 請於phpMyAdmin內點選「pcschool」資料庫名稱後於 右方視窗「建立新資料表於資料庫 pcschool」處輸入資料表 名稱為「vote」,欄位數量為「8」後按下右邊的「執行」 鈕進入資料表欄位設計。 請逐一輸入欄位的名稱、選擇型態、輸入長度、預設值設定等各種 設定後,最後按下「執行」鈕就可以建立一個新的資料表。

在phpMyAdmin 內以逐一建立欄位方式 建立資料表-3/4 1 點選「pcschool」資料庫名稱 4 2 3 輸入資料表 名稱為「vote」 欄位數量為「8」

在phpMyAdmin 內以逐一建立欄位方式 建立資料表-4/4 返回建立資料表

帳號權限調整 由上一章可知,mysql資料庫內五個資料表與使用者帳號權限有關。 若由phpMyAdmin網頁點選調整帳號權限,得在不同網頁間切換而頗 為不便,因此在此說明終端機如何新增使用者與賦予權限。 新增帳號與權限調整 資源限制 移除權限與刪除使用者 返回章節目錄

新增帳號與權限調整-1/13 以MySQL管理者root身份登入MySQL後,您可以使用「grant on」指 令新增使用者與權限的調整。 grant 權限 on 資料庫.資料表 to 帳號@主機 identified by ‘密碼’

新增帳號與權限調整-2/13 權限可分為「使用者層級權限」 與「管理者層級權限」共計十五項。「使用者層級權限」為以下的列表,共有八種:

新增帳號與權限調整-3/13 「管理者層級權限」共有七種,如以下列表:

新增帳號與權限調整-4/13 新增一個使用者帳號為「pcschool」,由localhost登入,擁有所有 的權限,密碼為 「phpmysql」,請依本書第11-19頁語法建立使用者帳號。 這個帳號可以看到所有的資料庫,包含「mysql」資料庫。

新增帳號與權限調整-5/13

新增帳號與權限調整-6/13 新增一個使用者帳號為「php1」,由localhost登入,擁有「board」資料庫上所有的權限,密碼為 「mysqlstart1」,請依本書第11-21頁語法建立使用者帳號。 此時並無「board」資料庫,所以當php1由phpMyAdmin登入,會 看到什麼畫面呢?

新增帳號與權限調整-7/13

新增帳號與權限調整-8/13 由於php1這個帳號只給予board資料庫權限,若系統內無board資料 庫時則右邊視窗「建立新資料庫」會自動加上「board」而希望您來 建立。 假設您另外建立資料庫,例如「test2」,phpMyAdmin會給您「Access denied for user ‘php1’@‘localhost’ to database ‘test2’」 錯誤訊息,通知您因沒有權限所以不可以建立其他名稱資料庫。

新增帳號與權限調整-9/13 「grant on」指令可協助帳號新增權限。 請新增「test2」資料庫的所有權現給php1,依本書第11-22頁語法 新增使用者權限帳號。 請重新登入php1帳號,就可以建立「test2」這一個資料庫。 請php1於test2資料庫內建立資料表「test2」,SQL語法同11-3-2 節。稍後建立新帳號測試是否可讀取test2資料庫內test2資料表。

新增帳號與權限調整-10/13 新增一個使用者帳號為「php2」,由localhost登入,擁有「test2」 資料庫上「test」資料表的所有權限,密碼為 「mysqlstart2」,請 依本書第11-23頁語法建立使用者帳號。 由於php2帳號只有test2資料庫上test資料表的所有權限,所以php2 帳號登入後看不到test2資料庫上test2資料表。

新增帳號與權限調整-11/13 test2資料庫真的沒有資料表嗎?

新增帳號與權限調整-12/13 新增一個使用者帳號為「php3」,由localhost登入,在所有資料庫 上只有select權限,密碼為 「mysqlstart3」」,請依本書第11-23頁 語法建立使用者帳號。 以php3帳號登入系統後,因沒有「新增資料」權限,所以當您要新 增資料時會產生錯誤。

新增帳號與權限調整-13/13 返回帳號權限調整

資源限制-1/5 我們也可以在設定帳號權限後針對這個帳號使用MySQL進行資源 限制。MySQL提供以下資源限制的方法。 請留意資源限制的對象是帳號(account)而不是使用者端(client),且資源限制必須以更新的方式增加使用者資源限制。設 定之後若要取消資源限制,請將該項資源限制為0。

資源限制-2/5 限制「php1」這個帳號每一個小時只能執行3次,請依本書第11-25 頁語法限制帳號資源使用。 一個小時內執行超過3次,帳號就不能登入。

資源限制-3/5 請將剛剛設定的「每一個小時只能執行3次」設定取消,以避免之後執行發生問題。 請依本書第11-25頁語法取消限制帳號資源使用。

資源限制-4/5 若限制「php1」這個帳號每一個小時只能更新3次,請依本書第11- 25頁語法限制帳號資源使用。 登入到資料庫後請嘗試進行多次更新,當您進行至第三次時系統將 會出現警告訊息阻止您再使用。

資源限制-5/5 若限制「php1」這個帳號每小時可以連結Server的次數為3次,並且取消「一個小時只能執行3次」及「每一個小時只能更新3次」限制,請依本書第11-26頁語法限制帳號資源使用。 請開啟多個瀏覽器分頁視窗,您會看到以下的錯誤訊息。代表連線 時不能超過三次。 返回帳號權限調整

移除權限與刪除使用者 -1/6 請以MySQL管理者root身份登入後,您可以使用「revoke on」指令移除使用者權限。 revoke 權限 on 資料庫.資料表 from 帳號@主機 請取消pcschool在資料庫裡delete權限,請依本書第11-27頁語法移除 權限。

移除權限與刪除使用者 -2/6 以pcschool帳號登入後請進行刪除資料的動作,會產生 錯誤訊息。

移除權限與刪除使用者 -3/6 若取消pcschool帳號所有權限,請依本書第11-27頁語法 移除所有權限。 這個帳號看不到剛剛所建立的資料庫,也無建立資料庫 的權限。這個帳號無法對資料庫做任何動作。

移除權限與刪除使用者 -4/6

移除權限與刪除使用者 -5/6 「revoke on」指令只能移除帳號權限,但無法將帳號刪除。 若要將帳號刪除,請執行以下步驟: 1 以MySQL管理者root身份登入MySQL,若root密碼為phpmysql, 請以「mysql –uroot -pphpmysql」方式登入。 2 執行「use mysql」指令使用mysql資料庫。 3 執行「delete from user where user='pcschool'; 」刪除使用者。 4 執行「flush privileges; 」指令使系統重新整理。 5 執行「exit」指令離開系統。

移除權限與刪除使用者-6/6 返回帳號權限調整

本章結論 在PHP存取MySQL之前,請先規劃好資料庫及資料表。資料表設計建議可依循以下的原則: 1.資料表內不應該包涵多餘或重複的資料,如果您需要反覆輸入相 同的資料,代表資料表設計需做調整。 2.資料表命名應該有意義,不應該是class1、class2等方式命名。 3.資料表需要的儲存空間應該愈小愈好。 4.建議在正式上線之前先做各種資料的新增刪除更新測試,確保資 料在更動時不會產生資料遺失的風險。 建議各位可參考以上的原則來規劃設計您的資料表。資料庫必須有 資料才有其意義,資料來源有自行輸入或匯入已有MySQL資料。下 一章將說明如何做好資料的匯出與匯入。 返回章節目錄

重點提示-1/3 登入的方式有兩種,第一種是輸入「mysql –u帳號 –p密碼」若不 希望密碼顯示,請改用「mysql –u帳號 -p」,當您按下enter後才 可輸入密碼。 終端機登入後可用「show databases;」指令顯示目前系統已安裝的 資料庫。 終端機登入後可用「create database 資料庫名稱;」指令建立資料 庫。 MySQL的資料形態可分為幾大類:數字、文字、日期時間、特殊類 等資料形態。

重點提示-2/3 auto_increment屬性具有以下的特性: 1.這個屬性在「Not Null」、「Primary Key」或「Unique」這三種屬性至 少具備一種的時候才能使用。 2.一個資料表只能有一個auto_increment屬性。 3.只有在新增紀錄時,在沒有明確指定數值及沒有指定Null值情況下才會自 動產生新編號。您可以手動為新紀錄指定數值,只要您指定的數值沒有被 用掉就可以。 char資料型態是固定長度字元,而varchar是個長度可變的型態。 索引有Primary Key、Unique、Index、Fulltext四種。

重點提示-3/3 權限可分為「使用者層級權限」與「管理者層級權限」共計15項。 新增帳號權限方法為「grant 權限 on 資料庫.資料表 to 帳號@主機 identified by ‘密碼’」。 移除帳號權限方法為「revoke 權限 on 資料庫.資料表 from 帳號@ 主機 」。 返回章節目錄

問題與討論-1/2 1.mysql終端機登入方式有哪幾種? 2.以終端機方式登入系統後如何顯示現有資料庫名稱 及建立資料庫? 2.以終端機方式登入系統後如何顯示現有資料庫名稱 及建立資料庫? 3.請說明欄位的auto_increment屬性特性。 4.請建立一個資料表,名稱為「list」,內有三個欄位,設定如下:

問題與討論-2/2 5.請列舉四種帳號權限。 6.請新增一個使用者帳號為「test1」,由localhost登入,擁有 「phptest」資料庫上所有的權限,密碼為 「testphp1」。 7.請新增一個使用者帳號為「test2」,由localhost登入,在所有資 料庫上只有delete權限,密碼為 「testphp2」。 8.請限制「test1」這個帳號每一個小時只能執行5次(由localhost登 入,密碼為 「testphp1」)。 9.請移除「test1」帳號select權限。 10.請刪除「test2」帳號。 返回章節目錄