1、使用username和password無(wú)法連接
在mysql表中龄减,host沒(méi)有%螺男,一般localhost和127.0.0.1是服務(wù)器本地訪問(wèn)的主機(jī)名(host)繁莹,但是遠(yuǎn)程的工具無(wú)法連接页屠,要在host列中添加一個(gè)%粹胯。
use mysql;
create user 'user_name'@'%' identified by '';
--修改密碼
set password for 'root'@'localhost'=password('1111');
主機(jī)名:localhost 127.0.0.1 只允許本機(jī)訪問(wèn)
主機(jī)名 % 允許任意主機(jī)訪問(wèn)
2、使用Navicat連接以后無(wú)法查看表
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
--將相應(yīng)的*換成特定的表或者數(shù)據(jù)庫(kù)辰企,可以指定特定的數(shù)據(jù)庫(kù)下的表的訪問(wèn)權(quán)限
3风纠、轉(zhuǎn)載
Mysql 用戶管理和權(quán)限設(shè)置
1.查看用戶
2.創(chuàng)建用戶
3.授權(quán)用戶
4.刪除用戶
5.設(shè)置與更改用戶密碼
6.撤銷用戶權(quán)限
1.查看用戶
查看用戶并沒(méi)有直接的SQL語(yǔ)句,而是進(jìn)入 mysql數(shù)據(jù)庫(kù)的user表(這個(gè)mysql庫(kù)和user表都是一開(kāi)始就有的)牢贸,直接用 select * from user竹观;來(lái)查看有什么用戶
由于在linux下比較難看,因?yàn)楦袷奖容^亂潜索,所以我用了 SQLyog這個(gè)軟件登陸數(shù)據(jù)庫(kù)來(lái)操作臭增。
代碼如下:
[sql] view plain copy
- use mysql;
- select * from user;
[圖片上傳失敗...(image-253c7e-1552151936120)]
效果如上圖帮辟,最后用數(shù)據(jù)庫(kù)軟件速址,因?yàn)樵趌inux下界面看不清效果玩焰,太亂了由驹。
從上圖可以看到,會(huì)列出數(shù)據(jù)庫(kù)所有的用戶及權(quán)限
2.創(chuàng)建用戶
CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
user_name:要?jiǎng)?chuàng)建用戶的名字蔓榄。
host:表示要這個(gè)新創(chuàng)建的用戶允許從哪臺(tái)機(jī)登陸并炮,如果只允許從本機(jī)登陸,則 填 ‘localhost’ 甥郑,如果允許從遠(yuǎn)程登陸逃魄,則填 ‘%’
password:新創(chuàng)建用戶的登陸數(shù)據(jù)庫(kù)密碼,如果沒(méi)密碼可以不寫澜搅。
例:
**CREATE USER ‘a(chǎn)aa’@‘localhost’ IDENTIFED BY ‘123456’伍俘; ** //表示創(chuàng)建的新用戶,名為aaa勉躺,這個(gè)新用戶密碼為123456癌瘾,只允許本機(jī)登陸
CREATE USER 'bbb'@'%' IDENTIFED BY '123456';//表示新創(chuàng)建的用戶饵溅,名為bbb妨退,這個(gè)用戶密碼為123456,可以從其他電腦遠(yuǎn)程登陸mysql所在服務(wù)器
CREATE USER ‘ccc’@‘%’ 蜕企;//表示新創(chuàng)建的用戶ccc咬荷,沒(méi)有密碼,可以從其他電腦遠(yuǎn)程登陸mysql服務(wù)器
我用 CREATE USER 'aaa'@‘%’轻掩;創(chuàng)建新用戶幸乒,再用 select * from user;查看用戶列表:
[圖片上傳失敗...(image-16aaf9-1552151936120)]
可以看出 有 aaa用戶了放典。但是可以看到 aaa 的權(quán)限很多都是 N逝变,表示沒(méi)有權(quán)限,因?yàn)檫€要為用戶授予權(quán)限奋构。
3.授權(quán)用戶
命令:GRANT privileges ON databasename.tablename TO ‘username’@‘host’
privileges:表示要授予什么權(quán)力壳影,例如可以有 select , insert 弥臼,delete宴咧,update等,如果要授予全部權(quán)力径缅,則填 ALL
databasename.tablename:表示用戶的權(quán)限能用在哪個(gè)庫(kù)的哪個(gè)表中掺栅,如果想要用戶的權(quán)限很作用于所有的數(shù)據(jù)庫(kù)所有的表,則填 .纳猪,*是一個(gè)通配符氧卧,表示全部。
’username‘@‘host’:表示授權(quán)給哪個(gè)用戶氏堤。
例:
GRANT select沙绝,insert ON zje.zje TO ‘a(chǎn)aa’@‘%’; //表示給用戶aaa授權(quán),讓aaa能給zje庫(kù)中的zje表 實(shí)行 insert 和 select闪檬。
GRANT ALL ON . TO ‘a(chǎn)aa’@‘%’星著;//表示給用戶aaa授權(quán),讓aaa能給所有庫(kù)所有表實(shí)行所有的權(quán)力粗悯。
用GRANT ALL ON . TO ‘a(chǎn)aa’@‘%’ 虚循;再看用戶列表,可以發(fā)現(xiàn)權(quán)限都變成 Y了样傍。
[圖片上傳失敗...(image-5b3f62-1552151936120)]
注意:
用以上命令授權(quán)的用戶不能給其他用戶授權(quán)横缔,如果想這個(gè)用戶能夠給其他用戶授權(quán),就要在后面加上 WITH GRANT OPTION
如:** GRANT ALL ON . TO ’aaa‘@'%' WITH GRANT OPTION衫哥; **
4.刪除用戶
命令:**DROP USER ‘user_name’@‘host’ **
例:
DROP USER 'aaa'@‘%’剪廉;//表示刪除用戶aaa;
5.設(shè)置與更改用戶密碼
SET PASSWORD FOR ‘username’@‘host’ = PASSWORD(‘newpassword’)炕檩;
如果是設(shè)置當(dāng)前用戶的密碼:
SET PASSWORD = PASSWORD('newpassword')斗蒋;
如:** SET PASSWORD = PASSWORD(‘123456’);**
6.撤銷用戶權(quán)限:
命令:REVOKE privileges ON database.tablename FROM ‘username’@‘host’笛质;
例如:** REVOKE SELECT ON . FROM ‘zje’@‘%’泉沾;**
但注意:
若授予權(quán)利是這樣寫: GRANT SELECT ON . TO ‘zje’@‘%’;
則用 REVOKE SELECT ON zje.aaa TO ‘zje’@‘%’妇押;是不能撤銷用戶zje 對(duì) zje.aaa 中的SELECT 權(quán)利的跷究。
反過(guò)來(lái) GRANT SELECT ON zje.aaa TO ‘zje’@‘%’;授予權(quán)力
用 REVOKE SELECT ON . FROM ‘zje’@‘%’敲霍;也是不能用來(lái)撤銷用戶zje 對(duì)zje庫(kù)的aaa表的SELECT 權(quán)利的