mysql創(chuàng)建用戶以及給用戶授予權(quán)限實(shí)現(xiàn)方式
新建用戶
create user username identified by '123456';
說明:
username
——你將創(chuàng)建的用戶名,password
——該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器.
進(jìn)入到mysql的客戶端,在下圖中可以看到,創(chuàng)建了一個(gè)用戶名為xaiodong
并且密碼為123456
的用戶
這個(gè)時(shí)候創(chuàng)建的改用戶只能看見一個(gè)庫, information_schema
重新開一個(gè)窗口,使用改用戶進(jìn)行測(cè)試,下圖中登錄到了新創(chuàng)建的用戶中。
使用show databases
查看有哪些數(shù)據(jù)庫的時(shí)候,可以看到只有一個(gè)數(shù)據(jù)庫
對(duì)于information_schema
數(shù)據(jù)庫,是mysql默認(rèn)自帶的數(shù)據(jù)庫,新創(chuàng)建的用戶xaiodong
可以查看改數(shù)據(jù)庫的部分表,由于這是mysql自帶的數(shù)據(jù)庫,所以最好不用動(dòng)它。
嘗試使用改用戶創(chuàng)建一個(gè)新的數(shù)據(jù)庫的時(shí)候發(fā)現(xiàn),沒有無法創(chuàng)建,只是因?yàn)闆]有權(quán)限的問題,接下來,將會(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ì)說明:
- grant all privileges 授予改用戶對(duì)于數(shù)據(jù)庫的所有權(quán)限
- dbname =
*
表示所有數(shù)據(jù)庫(也就是dbname為*
的時(shí)候) - tbname =
*
表示所有表 - login ip =
%
表示任何 ip都是通過改用戶進(jìn)行登錄 - password 為空,表示不需要密碼即可登錄
- with grant option 表示該用戶還可以授權(quán)給其他用戶
測(cè)試,目前在數(shù)據(jù)庫中有一個(gè)數(shù)據(jù)庫名為test2
的數(shù)據(jù)庫,在該數(shù)據(jù)庫中有一張名字為user
的表,將在root用戶下,授予剛才新建的用戶對(duì)于該數(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
檢測(cè)一下是否可以對(duì)該數(shù)據(jù)庫進(jìn)行操作呢,嘗試往該數(shù)據(jù)庫中插入一條數(shù)據(jù)
查入數(shù)據(jù)成功,說明給該用戶的的授權(quán)成功
由于新用戶只對(duì)test2
用戶的user
表有所有的權(quán)限,所有目前該新用戶還沒有其它權(quán)限,比如使用該用戶創(chuàng)建新的數(shù)據(jù)庫。
給該新用戶授予所有的權(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ù)庫等幾乎所有權(quán)限。
對(duì)于上面的操作中對(duì)于一個(gè)新的用戶授予所有的數(shù)據(jù)庫的所有權(quán)限是一個(gè)比較危險(xiǎn)的操作,因此再對(duì)于一個(gè)新的用戶(特別是不是很信任的用戶),可以設(shè)置比較具體的權(quán)限。
下面將介紹如何授予比較具體的權(quán)限。
更具體的授權(quán)
可以將All替換成下面的10個(gè)比較細(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的對(duì)于所有數(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Mysql5.7自帶的壓力測(cè)試命令mysqlslap及使用語法
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ò)問題
這篇文章主要介紹了關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08MySQL的集群配置的基本命令使用及一次操作過程實(shí)錄
這篇文章主要介紹了MySQL的集群配置過程中的基本命令使用,實(shí)錄中給出了兩個(gè)節(jié)點(diǎn)連接的例子,更多的話同理:)需要的朋友可以參考下2015-11-11MySQL的Replace into 與Insert into on duplicate key update真正的不同
今天聽同事介紹oracle到mysql的數(shù)據(jù)migration,他用了Insert into ..... on duplicate key update ...,我當(dāng)時(shí)就想怎么不用Replace呢,于是回來就仔細(xì)查了下,它們果然還是有區(qū)別的2014-02-02MySQL主從復(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),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09