《MySQL必知必會》第二十八 第三十章

2021-10-03 15:42:43 字數 2546 閱讀 6552

mysql的安全基礎是使用者不能對過多的資料具有過多的訪問權,即需要給使用者提供他們所需的訪問權,且僅提供他們所需的訪問權,這就是訪問控制

在現實的日常工作中,決不能使用root,應該建立一系列的賬號

mysql使用者賬號和資訊儲存在名為mysql的mysql資料庫中,在需要獲得所有使用者賬號列表時

use mysql;

select

user

from

user

;

mysql資料庫中有乙個名為user的表,包含所有使用者賬號

建立乙個新使用者賬號,建立時不一定需要口令,再次列出賬號時嗎,就會看到新賬號

create

user ben identified by

'p@$$0rd'

;

identified by指定的口令為純文字,mysql將在儲存到user表之前對其進行加密,為了作為雜湊值指定口令,使用identified by ***

grant語句也可以建立使用者賬號,但是create user更清楚簡單

也可以直接插入行到user表中來增加使用者,但不安全,不建議這樣做

重新命名乙個使用者賬號

rename

user ben to bforta;

刪除使用者賬號

drop

user bforta;

新建立的使用者賬號沒有訪問許可權,只能登陸mysql,但看不到資料,也無法進行任何操作

為了看到使用者賬號的許可權

show grants for bforta;
mysql的許可權用使用者名稱和主機名聯合定義,如果不指定主機名,使用預設主機名%,如bforta@%

設定許可權

grant

select

on crashcourse.

*to bforta;

此grant允許使用者在crashcourse.*(crashcourse資料庫 的所有表)上使用select,從此具有了唯讀訪問許可權

此時再執行命令檢視許可權,會發現多了一條

show grants for bforta;
撤銷特定的許可權,被撤銷的訪問許可權必須存在,否則出錯

revoke

select

on crashcourse.

*from bforta;

grant和revoke可以在幾個層次上控制訪問許可權

1、整個伺服器,使用grant all和revoke all

2、整個資料庫,使用on database.*

3、特定的表,使用on database.table

4、特定的列

5、特定的儲存過程

相關許可權見書p202~p203

簡化多次授權,用逗號分隔

grant

select

,insert

on crashcourse.

*to bforta;

更改口令,新口令必須傳遞到passwor()函式進行加密

set password for bforta = password(

'n3w p@$$w0rd'

);

不指定使用者名稱時,更新當前登入使用者的口令

set password = password(

'n3w p@$$w0rd'

);

檢查表鍵是否正常

analyze

table orders;

check table針對許多問題對錶進行檢查

check

table orders, orderitems;

在排除系統啟動問題時,首先應該盡量用手動啟動伺服器,mysql伺服器自身通過在命令列上執行mysqld啟動,幾個常用的mysqld命令列選項

–help 顯示幫助

–safe-mode裝載減去某些最佳配置的伺服器

–verbose顯示全文本訊息

–version顯示版本資訊然後退出

mysql維護管理員依賴的一系列日誌檔案,主要有

1、錯誤日誌

2、查詢日誌

3、二進位制日誌

4、緩慢查詢日誌

一些改善效能的建議

mysql是用一系列預設設定預先配置的,一段時間後可能需要調整記憶體分配,緩衝區大小等

mysql是乙個多使用者多執行緒的dbms,若某乙個任務執行緩慢,則所有請求都會執行緩慢,可以用show processlist顯示所有活動程序,用kill終結某個特定的程序

一條select語句有多種編寫方法,尋找最佳方法

一般來說,儲存過程比一條一條執行其中的mysql語句更快

盡量不用select *,只檢索需要的資料

like很慢,最好使用fulltext

MYSQL必知必會讀書筆記 第二十八章 使用者授權

mysql使用者賬戶和資訊儲存在名為mysql的mysql資料庫中。一般不需要直接訪問mysql資料庫的表,但是有時候會需要直接訪問,需要的時機之一就是需要獲得所有使用者賬號列表時。use mysql select user from user 建立賬號和密碼 createuser dog loca...

學習筆記 《MySQL必知必會》 第二十章

在update語句中使用子查詢 ignore關鍵字 如果用update語句更新多行,並且在更新這些行中的一行或多行時出乙個現錯誤,則整個update操作被取消 錯誤發生前更新的所有行被恢復到它們原來的值 為即使是發生錯誤,也繼續進行更新,可使用ignore關鍵字,刪除資料 delete delete...

第二十八天

1 建立乙個名稱為itcast的資料庫。create database itcast 2 設計資料表tb student的字段結構,欄位有id 學號 name 姓名 age 年齡 enrolmentdate 入學時間 並選擇適合的資料型別。tb student資料表的字段結構如下表所示 欄位名 型別...