mysql創(chuàng)建用戶以及給用戶授予權(quán)限實(shí)現(xiàn)方式
新建用戶
create user username identified by '123456';
說明:
username——你將創(chuàng)建的用戶名,password——該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器.
進(jìn)入到mysql的客戶端,在下圖中可以看到,創(chuàng)建了一個用戶名為xaiodong并且密碼為123456的用戶

這個時候創(chuàng)建的改用戶只能看見一個庫, information_schema
重新開一個窗口,使用改用戶進(jìn)行測試,下圖中登錄到了新創(chuàng)建的用戶中。

使用show databases查看有哪些數(shù)據(jù)庫的時候,可以看到只有一個數(shù)據(jù)庫

對于information_schema數(shù)據(jù)庫,是mysql默認(rèn)自帶的數(shù)據(jù)庫,新創(chuàng)建的用戶xaiodong可以查看改數(shù)據(jù)庫的部分表,由于這是mysql自帶的數(shù)據(jù)庫,所以最好不用動它。
嘗試使用改用戶創(chuàng)建一個新的數(shù)據(jù)庫的時候發(fā)現(xiàn),沒有無法創(chuàng)建,只是因?yàn)闆]有權(quán)限的問題,接下來,將會講如何給改用戶進(jìn)行授權(quán)。

新用戶授權(quán)
下面給用戶授權(quán)的命令
grant all privileges on dbname.tbname to 'username'@'login ip' identified by 'password' with grant option;
詳細(xì)說明:
- grant all privileges 授予改用戶對于數(shù)據(jù)庫的所有權(quán)限
- dbname =
*表示所有數(shù)據(jù)庫(也就是dbname為*的時候) - tbname =
*表示所有表 - login ip =
%表示任何 ip都是通過改用戶進(jìn)行登錄 - password 為空,表示不需要密碼即可登錄
- with grant option 表示該用戶還可以授權(quán)給其他用戶
測試,目前在數(shù)據(jù)庫中有一個數(shù)據(jù)庫名為test2的數(shù)據(jù)庫,在該數(shù)據(jù)庫中有一張名字為user的表,將在root用戶下,授予剛才新建的用戶對于該數(shù)據(jù)庫中該表的所有權(quán)限
grant all privileges on test2.user to 'xiaodong'@'%' identified by '123456' with grant option;

然后再新創(chuàng)建的用戶xiaodong所在窗口中,查看數(shù)據(jù)庫,可以看到剛才root用戶授予權(quán)限的數(shù)據(jù)庫test2

檢測一下是否可以對該數(shù)據(jù)庫進(jìn)行操作呢,嘗試往該數(shù)據(jù)庫中插入一條數(shù)據(jù)

查入數(shù)據(jù)成功,說明給該用戶的的授權(quán)成功
由于新用戶只對test2用戶的user表有所有的權(quán)限,所有目前該新用戶還沒有其它權(quán)限,比如使用該用戶創(chuàng)建新的數(shù)據(jù)庫。

給該新用戶授予所有的權(quán)限
使用root用戶登錄之后使用下面的命令對于新用戶授予該用戶所有的權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'xiaodong'@'%' Identified by "123456";
下圖為新用戶登錄之后的界面,這個時候可以發(fā)現(xiàn)xiaodong用戶目前有了創(chuàng)建用戶并且可以看到所有的數(shù)據(jù)庫等幾乎所有權(quán)限。

對于上面的操作中對于一個新的用戶授予所有的數(shù)據(jù)庫的所有權(quán)限是一個比較危險的操作,因此再對于一個新的用戶(特別是不是很信任的用戶),可以設(shè)置比較具體的權(quán)限。
下面將介紹如何授予比較具體的權(quán)限。
更具體的授權(quán)
可以將All替換成下面的10個比較細(xì)的權(quán)限,中間用逗哈進(jìn)行隔開
GRANT ALL PRIVILEGES ON *.* TO 'aaa'@'%' Identified by "123456" WITH GRANT OPTION;
privileges 包括:
alter:修改數(shù)據(jù)庫的表create:創(chuàng)建新的數(shù)據(jù)庫或表delete:刪除表數(shù)據(jù)drop:刪除數(shù)據(jù)庫/表index:創(chuàng)建/刪除索引insert:添加表數(shù)據(jù)select:查詢表數(shù)據(jù)update:更新表數(shù)據(jù)all:允許任何操作usage:只允許登錄
回收權(quán)限
命令詳解
revoke privileges on dbname[.tbname] from username;
如下面為收回用戶aaa的對于所有數(shù)據(jù)庫的所有權(quán)限
revoke all privileges on *.* from aaa;
修改用戶的密碼
use mysql select * from user
進(jìn)入 mysql 庫中
- 修改密碼
update user set password = password('qwe') where user = 'aaa';
- 刷新權(quán)限
flush privileges
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySql添加新用戶及為用戶創(chuàng)建數(shù)據(jù)庫和給用戶分配權(quán)限方法介紹
這篇文章主要介紹了MySql添加新用戶及為用戶創(chuàng)建數(shù)據(jù)庫和給用戶分配權(quán)限方法介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
MySQL實(shí)現(xiàn)創(chuàng)建存儲過程并循環(huán)添加記錄的方法
這篇文章主要介紹了MySQL實(shí)現(xiàn)創(chuàng)建存儲過程并循環(huán)添加記錄的方法,涉及基本的mysql存儲過程創(chuàng)建、調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
MySQL數(shù)據(jù)庫開發(fā)的36條原則(小結(jié))
這篇文章主要介紹了MySQL數(shù)據(jù)庫開發(fā)的36條原則(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

