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

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

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

對(duì)于information_schema數(shù)據(jù)庫(kù),是mysql默認(rèn)自帶的數(shù)據(jù)庫(kù),新創(chuàng)建的用戶xaiodong可以查看改數(shù)據(jù)庫(kù)的部分表,由于這是mysql自帶的數(shù)據(jù)庫(kù),所以最好不用動(dòng)它。
嘗試使用改用戶創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)的時(shí)候發(fā)現(xiàn),沒(méi)有無(wú)法創(chuàng)建,只是因?yàn)闆](méi)有權(quán)限的問(wèn)題,接下來(lái),將會(huì)講如何給改用戶進(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ì)說(shuō)明:
- grant all privileges 授予改用戶對(duì)于數(shù)據(jù)庫(kù)的所有權(quán)限
- dbname =
*表示所有數(shù)據(jù)庫(kù)(也就是dbname為*的時(shí)候) - tbname =
*表示所有表 - login ip =
%表示任何 ip都是通過(guò)改用戶進(jìn)行登錄 - password 為空,表示不需要密碼即可登錄
- with grant option 表示該用戶還可以授權(quán)給其他用戶
測(cè)試,目前在數(shù)據(jù)庫(kù)中有一個(gè)數(shù)據(jù)庫(kù)名為test2的數(shù)據(jù)庫(kù),在該數(shù)據(jù)庫(kù)中有一張名字為user的表,將在root用戶下,授予剛才新建的用戶對(duì)于該數(shù)據(jù)庫(kù)中該表的所有權(quán)限
grant all privileges on test2.user to 'xiaodong'@'%' identified by '123456' with grant option;

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

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

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

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

對(duì)于上面的操作中對(duì)于一個(gè)新的用戶授予所有的數(shù)據(jù)庫(kù)的所有權(quán)限是一個(gè)比較危險(xiǎn)的操作,因此再對(duì)于一個(gè)新的用戶(特別是不是很信任的用戶),可以設(shè)置比較具體的權(quán)限。
下面將介紹如何授予比較具體的權(quán)限。
更具體的授權(quán)
可以將All替換成下面的10個(gè)比較細(xì)的權(quán)限,中間用逗哈進(jìn)行隔開(kāi)
GRANT ALL PRIVILEGES ON *.* TO 'aaa'@'%' Identified by "123456" WITH GRANT OPTION;
privileges 包括:
alter:修改數(shù)據(jù)庫(kù)的表create:創(chuàng)建新的數(shù)據(jù)庫(kù)或表delete:刪除表數(shù)據(jù)drop:刪除數(shù)據(jù)庫(kù)/表index:創(chuàng)建/刪除索引insert:添加表數(shù)據(jù)select:查詢表數(shù)據(jù)update:更新表數(shù)據(jù)all:允許任何操作usage:只允許登錄
回收權(quán)限
命令詳解
revoke privileges on dbname[.tbname] from username;
如下面為收回用戶aaa的對(duì)于所有數(shù)據(jù)庫(kù)的所有權(quán)限
revoke all privileges on *.* from aaa;
修改用戶的密碼
use mysql select * from user
進(jìn)入 mysql 庫(kù)中
- 修改密碼
update user set password = password('qwe') where user = 'aaa';
- 刷新權(quán)限
flush privileges
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Mysql5.7自帶的壓力測(cè)試命令mysqlslap及使用語(yǔ)法
mysqlslap是一個(gè)診斷程序,旨在模擬MySQL服務(wù)器的客戶端負(fù)載并報(bào)告每個(gè)階段的時(shí)間。這篇文章主要介紹了Mysql5.7自帶的壓力測(cè)試命令mysqlslap的相關(guān)知識(shí),需要的朋友可以參考下2019-10-10
關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問(wèn)題
這篇文章主要介紹了關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
MySQL的集群配置的基本命令使用及一次操作過(guò)程實(shí)錄
這篇文章主要介紹了MySQL的集群配置過(guò)程中的基本命令使用,實(shí)錄中給出了兩個(gè)節(jié)點(diǎn)連接的例子,更多的話同理:)需要的朋友可以參考下2015-11-11
MySQL的Replace into 與Insert into on duplicate key update真正的不同
今天聽(tīng)同事介紹oracle到mysql的數(shù)據(jù)migration,他用了Insert into ..... on duplicate key update ...,我當(dāng)時(shí)就想怎么不用Replace呢,于是回來(lái)就仔細(xì)查了下,它們果然還是有區(qū)別的2014-02-02
MySQL主從復(fù)制之半同步semi-sync?replication
這篇文章主要介紹了MySQL主從復(fù)制之半同步semi-sync?replication,半同步相對(duì)于異步復(fù)制而言,提高了數(shù)據(jù)的安全性,同時(shí)也造成了一定程度的延遲,這個(gè)延遲最少是一個(gè)TCP往返的時(shí)間。所以,半同步復(fù)制最好在低延時(shí)的網(wǎng)絡(luò)中使用,下文詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-02-02
詳解MySQL客戶端/服務(wù)器運(yùn)行架構(gòu)
這篇文章主要介紹了詳解MySQL客戶端/服務(wù)器運(yùn)行架構(gòu),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09

