MySQL視圖、用戶管理全面指南
前言:
本節(jié)內(nèi)容講述兩個板塊的內(nèi)容, 一個板塊是數(shù)據(jù)庫的視圖, 另一個板塊是mysql的用戶管理,主要講解了用戶的增刪, 以及查和修改密碼。 然后講述了用戶的賦予和收回權(quán)限。 下面開始我們的學習吧!
視圖
認識視圖
視圖是一種使用mysql表結(jié)構(gòu)的方式。同時視圖是一種虛擬表, 同真實的表一樣,視圖也包含一系列帶有名稱的列和行數(shù)據(jù)。視圖和基表是兩個對應的概念,其中視圖是虛擬表,基表就是原本的保存在數(shù)據(jù)庫中的表。
就比如,上面這五張表, 就是基表。
然后我們使用內(nèi)連接,連接emp和dept,查出來的那個結(jié)果其實也是一張表。
然后呢,未來我們不想再重新查這個表,而是讓這個表一直存在著,因為我們一直要用。 這個時候,我們就可以讓上面這個表變成視圖。
然后就多了一張表,我們說視圖是虛表,我們修改視圖里面的表會不會影響我們原表呢?
這里做一下實驗,用update更新一下數(shù)據(jù):
首先能夠觀察到視圖里面的被改了。那么原表里面的呢?
原表中的也被改了。所以我們就可以推測,視圖其實就是一張?zhí)摫恚晥D和原表是聯(lián)通的,其中的數(shù)據(jù)并沒有持久到磁盤。
視圖的規(guī)則與限制
- 視圖與表一樣,必須唯一命名。
- 創(chuàng)建視圖數(shù)目無限制,但要考慮復雜查詢創(chuàng)建為視圖之后的性能影響。
- 視圖不能添加索引,也不能有關(guān)聯(lián)的觸發(fā)器或者默認值。
- 視圖可以提高安全性,必須有足夠的訪問權(quán)限。
- order by可以使用在試圖當中,但是如果從該視圖檢索數(shù)據(jù)select中也含有order by,那么該視圖中的order by將被覆蓋。
- 視圖可以與表一起使用。它其實就是表。
用戶的增刪查改
一般情況下,我們使用數(shù)據(jù)庫,下面默認就有一個數(shù)據(jù)庫mysql:
這個數(shù)據(jù)庫里面有許許多多的表:
其中, 保存我們用戶信息的就是user表, 下面是查表后的root信息:
其中User就是用戶的名稱,然后Host就是允許用戶當前從哪里進行登錄。然后其中下面的字段就是權(quán)限信息。然后后面有一個字段是密碼, 這個密碼是加密的, 只有mysql能夠看懂, 也就是紅框框的內(nèi)容。
創(chuàng)建用戶
信息太多我們就直接查兩個字段: User和host
我們在mysql里面開賬號,不僅需要在mysql里面創(chuàng)建用戶的名稱和密碼,還要規(guī)定用戶能夠從哪里登錄。所以我們想要創(chuàng)建一個用戶,最簡單的方法就是使用insert向里面插入一個數(shù)據(jù)。但是由于屬性很多,一般不推薦這樣寫,所以就使用創(chuàng)建用戶的sql語句:
create user '用戶名'@'登陸主機/ip'identified by '密碼';
- 這里后面的登錄主機不能隨便寫!!!一般就寫127.0.0.1本地環(huán)回或者localhost,直接在本地登錄。
- 想要創(chuàng)建一個能連接任意主機的用戶就是使用%,不推薦 。
這里創(chuàng)建一個新用戶:
然后我們就看到,我們能能夠看到的數(shù)據(jù)庫和我們root能夠看到的數(shù)據(jù)庫,完全不一樣。這是因為新用戶沒有對應的權(quán)限!
刪除用戶
刪掉用戶可以使用root直接將User表中的數(shù)據(jù)刪掉。但是不推薦。這里同樣可以使用sql語句:
drop user 用戶名@登錄ip;
修改密碼
修改密碼一般可以自己該自己或者root改自己, 就是使用:
set password = password(密碼); //自己改自己。
set password for '用戶'@'ip' = password(密碼);//root改別人
用戶的權(quán)限
我們用戶新創(chuàng)建出來的時候是看不到這些數(shù)據(jù)庫的:
所以就需要我們進行賦權(quán):
給與權(quán)限
grant 權(quán)限列表 on 庫.表 to '用戶名'@'登錄ip';
然后我們就能看到這個表,并且能夠進入了:
我們可以把所有表的權(quán)限都給用戶:
然后我們就能看到所有的表了?。?!
收回權(quán)限
也可以回收權(quán)限r(nóng)evoke:
revoke 權(quán)限 on 數(shù)據(jù)庫表名 from '用戶名'@'主機ip';
然后我們可以使用show grants查看某一個用戶@登錄ip的所有賦予權(quán)限:
show grants for '用戶名'@'登錄ip';
總結(jié)
到此這篇關(guān)于MySQL視圖、用戶管理的文章就介紹到這了,更多相關(guān)MySQL視圖、用戶管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
面試被問select......for update會鎖表還是鎖行
select … for update 是我們常用的對行加鎖的一種方式,那么select......for update會鎖表還是鎖行,本文就詳細的來介紹一下,感興趣的可以了解一下2021-11-11explain命令為什么可能會修改MySQL數(shù)據(jù)
這篇文章主要介紹了explain命令為什么可能會修改MySQL數(shù)據(jù),幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下2020-12-12