mysql創建用戶並賦予用戶權限

mysql創建用戶並賦予用戶權限。在很多時候,我們並不會直接利用mysql的root用戶進行項目的開發,一般的,我們都會創建一個具有部分權限的用戶。比如我們隻需要從資料庫中查找數據,我們就隻需要創建一個具有select權限的用戶即可。

??我總是忘記怎麼創建用戶和賦予用戶權限,以及怎麼查找用戶所具有的權限。為瞭更好地記住,我自己來總結一次吧!


??下面我們來創建一個用戶名為’superboy’,密碼為’iamsuperboy’的用戶,並賦予他對資料庫’simpleshop’部分權限:select,update,delete,insert;

查看用戶&權限

??為瞭更好的實踐,當然先得告訴你怎麼查看用戶信息及用戶權限。
??首先你得在黑窗口中使用mysql -u root -p登陸管理員用戶。

查看用戶信息

use mysql;
select host,user,password from user;

??這裡的host是指用戶可以在哪裡(哪個ip)登陸到該mysql資料庫。localhost或者127.0.0.1表示本地,’%’表示所有ip,其他固定ip這表示僅能通過那個ip。下面主要對本地用戶進行說明,隻要將localhost換成相應ip或者’%’即可表示遠程用戶。

查看用戶權限

-- 查看本地root的權限,沒有指定後面的localhost則默認為'%'
show grants for root@'localhost';
-- 查看指定host的root的權限
show grants for root@'192.168.122.12';

創建用戶

創建本地用戶

-- 選擇mysql資料庫
use mysql;
-- 創建本地用戶
create user 'superboy'@'localhost' identified by 'iamsuperboy';
-- 刷新MySQL的系統權限相關表,使添加用戶操作生效,以免會出現拒絕訪問
flush privileges;

創建遠程用戶

-- 從192.168.122.12登陸的用戶
create user 'superboy'@'192.168.122.12' identified by 'iamsuperboy';
-- 從任意ip登陸的用戶
create user 'superboy'@'%' identified by 'iamsuperboy';
-- 不做指定默認為'%'
create user 'superboy' identified by 'iamsuperboy';

修改用戶密碼

??如果馬大哈的小夥伴不小心輸錯瞭用戶名和密碼,可以使用下面的方法進行救急。這裡我們將密碼’iamsuperboy’修改為’iamsuperman’。

-- 使用update指令,註意這裡的password需要進行加密
use mysql;
update user set password = password('iamsuperman') where user = 'superboy';
flush privileges;
-- -----------------或者------------------
set password for superboy@'localhost'= password('iamsuperman');
flush privileges;

刪除用戶

??如果需要刪除用戶,可以這樣:

use mysql;
delete from user where user='superboy' and host='localhost' ;
flush privileges;

??註意:創建用戶或者修改用戶密碼之後,我們需要執行指令flush privileges;刷新MySQL的系統權限相關表,使操作生效,以免出現拒絕訪問。

賦予&撤銷用戶權限

賦予用戶權限

??由於我們的項目,用戶隻對資料庫’simpleshop’進行增刪查改操作,所以我們隻需要創建一個具有增刪查改權限的用戶。

-- 賦予部分權限,其中的shopping.*表示對以shopping所有文件操作。
grant select,delete,update,insert on simpleshop.* to superboy@'localhost' identified by 'superboy';
flush privileges;
-- 賦予所有權限
grant all privileges on simpleshop.* to superboy@localhost identified by 'iamsuperboy';
flush privileges;

撤銷用戶權限

??後來我們發現,我們的項目,用戶根本就不需要修改信息。這時我們可以撤銷superboy的update權限。

-- 撤銷update權限
revoke update on simpleshop.* from superboy@localhost;
-- 撤銷所有權限
revoke all on simpleshop.* from superboy@localhost;

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *