嗨!各位小伙伴
今天翻了一下歷史記錄
MySQL 數據庫還有點內容
今天開始我們就來補上吧~
用戶權限管理
伙伴們要知道,在數據庫方面有兩個方向。一個是數據庫管理員(Database Administrator)簡稱DBA,一個是數據庫開發工程師(Database Developer),
其中:
1) 數據庫開發工程師的主要職責是設計和開發數據庫管理系統和數據庫應用軟件系統,側重于軟件研發;
2) DBA 的主要職責是運維和管理數據庫管理系統,側重于運維管理。
不知道小伙伴們有沒有想往這方面發展的,當然作為一個開發人員,對數據庫還是要有一定的了解的,今天我們就來初步了解一下 MySQL 數據庫的權限管理。
首先 MySQL 是一個多用戶的數據庫系統,按權限,用戶可以分為兩種:root 用戶,超級管理員,和由 root 用戶創建的普通用戶。
用戶的權限要經過兩個階段:
第一階段:有沒有權限鏈接到數據庫,就是用戶名和密碼拉~
第二階段:有沒有權限對數據庫進行操作如:(create , drop , select , delete等等。)
第一階段
對于第一階段服務器判斷用戶有沒有權限鏈接依據的是三個參數:
host:你從哪兒來?
user:你是誰?
password:你的密碼是多少?
登錄連接命令。
mysql -h(host) -u(user) -p(password) -P(port)
其中 host 指的是你安裝數據庫的服務器的 IP 地址,user 是用戶名,password 是你的用戶密碼,-P 是你要連接的端口號。
現在我們來試一下:
現在我已經鏈接上我的數據庫了(只有一臺電腦)。
現在我們來查一下MySQL數據庫。
用戶的信息都存儲在 mysql 的 user 表中。
select host,user,password from user;
host : 訪問數據庫客戶端機器的IP地址。localhost 與 127.0.0.1 :代表本地
user : 用戶名稱
password :密碼
我們看到在 localhost 中沒有用戶名和密碼也可以登陸數據庫
我們來試一下,現在成功登陸了呦~
我們沒有用戶名和密碼就登陸了我們的數據庫,出于對數據的安全性考慮,我們來刪除這個空的用戶,刪除的時候要注意用戶的權限,我們要登陸 root 用戶進行刪除。現在這個空的用戶就被刪除了。
第二個階段
create user 命令
create user : 用于創建 MySQL 賬戶
語法:
create user username identified by 'pwd';
現在我們來創建一個賬號 user1,
eg: create user user1 identified by '1234';
% :表示所有 IP 地址客戶端都可以訪問。現在這邊只是有一個賬號,沒有賬號權限,我們試著登陸一下~
登陸成功,但是看不到我們的數據庫(圖上的兩個一個是我們的默認數據庫,一個是練習數據庫),現在我們來給賬號分配權限。
grant 命令
grant : 命令用來管理訪問權限,也可以用來創建和刪除賬號。
語法:
grant [權限1,權限2,...] on *.* to user@host identified by 'password';
常見的權限:
all, create, drop, insert, update, delete,select
把所有的權限給賬號名為 user,密碼為 password 的賬號
grant all privileges on *.* to user@host identified by 'password';
現在我們來給賬號 user1 分配權限。
eg:
grant all privileges on *.* to 'user1'@'localhost' identified by '1234';
flush privileges; 沖刷權限
現在我們再來登陸試一下。就可以看見我們數據庫中的內容了
revoke 命令
revoke :用來收回權限
語法:
revoke [權限1,權限2,...] on *.* from user@host;
收回用戶user在host上訪問數據庫的所有權限。
revoke all privileges on *.* from user@host;
現在我們收回 user1 的所有權限。
revoke all privileges on . from 'user1'@'localhost';
登陸 user1 來看一下~我們的權限都被收回了。
drop user 命令
drop user :用來刪除閑置或沒用的 MySQL 賬戶。
語法:
drop user user@host;
我們來回收賬號 user1
drop user 'user1'@'localhost';
現在我們的賬號 user1 就被刪除了。
今天的分享就到這了
小伙伴們加油了