深入學習mysql 一

2021-10-10 05:44:41 字數 2985 閱讀 1541

相信很多人都說過一句玩笑話,刪庫跑路哈哈哈~說到刪庫跑路,那麼你是否了解過,如何給mysql設定許可權來防止這樣的事情發生呢

如果你使用的是root許可權的賬號,你需要給不同的賬號來分配許可權時,可以使用如下的sql語句來建立對應的賬號和許可權:

grant

select

on practice.*to

'dev'@'%

' identified by '

123' with

grant

option

;

這裡的practice是指資料庫的名稱,.*表示該資料庫下所有的表,dev表示連線資料庫使用的賬號名,%表示dev賬號可以用所有ip訪問,如果@後面是指定ip,則dev賬號只能在指定ip上訪問. 123表示dev賬號對應的密碼

檢視dev對應的許可權

登入dev賬號檢視許可權是否生效

進入dev賬號,當我想要刪除practice資料庫下的test表時,提示我們無法刪除,說明許可權已經生效.還想刪庫跑路嗎,哈哈

上面在建立dev賬號的過程中,我們能看到,mysql的許可權不是單純賦予給某個使用者dev的,而是賦予給"使用者+ip"的.比如我們上面建立的dev賬號用什麼密碼登陸,在哪個ip上能登陸,這樣才算乙個完整的使用者標識.

mysql中的幾張表可以記一下,面試時也是加分項.在我們連線的資料庫中都會有這麼幾張表

這個叫mysql的資料庫裡面有這麼幾張表

user,db,table_priv,column_priv,這些表有什麼用呢?和許可權有什麼關係呢?

user 的一行記錄代表乙個使用者標識

db 的一行記錄代表對資料庫的許可權

table_priv 的一行記錄代表對錶的許可權

column_priv 的一行記錄代表對某一列的許可權

drop

table

ifexists

`account`

;create

table

`account`

(`id`

int(11)

notnull

,`name`

varchar(50

)default

null

,`balance`

int(

255)

default

null

,primary

key(

`id`),

key`idx_balance`

(`balance`))

engine

=innodb

default

charset

=utf8;

插入幾條資料

insert

into

`account`

values

('1'

,'lilei'

,'900');

insert

into

`account`

values

('2'

,'hanmei'

,'100');

insert

into

`account`

values

('3'

,'lucy'

,'250');

insert

into

`account`

values

('5'

,'tom'

,'0'

);

建立完成後,當我們使用root賬號時可以看到表中所有的字段

那麼,如果我不想讓dev訪問balance列呢

我們先刪除下dev下的允許查詢所有的許可權

revoke

select

on practice.

*from

'dev'

@'%'

再執行下面這條sql

grant

select

(id,name)

on practice.account to

'dev'

@'%'

;

這時候可以分別看下mysql資料庫下的 table_priv,column_priv 的資料

使用dev登陸查詢發現查詢?不好意思,不允許了

而只查詢id和name時是可以的

哈哈,是不是感覺很簡單,我們下期再接著盤!

喜歡就點讚收藏吧,你的點讚就是我的動力,在成為架構師的路上我們一起努力~

Mysql查詢 深入學習

1 開篇 在學習的過程中我們一起進步,成長。有什麼寫的不對的還望可以指出。2 查詢 1 多表之間的查詢 笛卡爾積 100 100 10000 查詢的資料量可能非常大 給表名取別名 2 關聯查詢 隱示內連線查詢。sql92 內連線查詢。sql99 left join on 如果我寫 left join...

mysql查詢深入 Mysql查詢 深入學習

1 開篇 在學習的過程中我們一起進步,成長。有什麼寫的不對的還望可以指出。2 查詢 1 多表之間的查詢 笛卡爾積 100 100 10000 查詢的資料量可能非常大 給表名取別名 2 關聯查詢 隱示內連線查詢。sql92 內連線查詢。sql99 left join on 如果我寫 left join...

Php深入學習一

對於php的學習,你不可避免的要經常與前端互動,這要求你必須掌握html css js。最好還能會jquery或者angularjs以及bootstrap。後三個可以讓你開發前端更快捷 這裡面的內容對於初學者入門php完全足夠,前期不要用框架,基礎語法整紮實了,至少你要會基本的搭建環境和發布專案,常...