MYSQL 5.6
1.創(chuàng)建用戶(hù)
1.1 格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
host:指定該用戶(hù)在哪個(gè)主機(jī)上可以登陸,如果是本地用戶(hù)可用localhost,如果想讓該用戶(hù)可以從任意遠(yuǎn)程主機(jī)登陸,可以使用通配符%,%匹配所有主機(jī),該地方設(shè)置成‘localhost’,代表只能本地訪(fǎng)問(wèn)。
1.2 例子:
允許本地 IP 訪(fǎng)問(wèn)
create user 'test'@'localhost' identified by '123456';
create user 'test'@'127.0.0.1' identified by '123456';
兩種方式均可
允許外網(wǎng) IP 訪(fǎng)問(wèn)
create user 'test'@'%' identified by '123456';
允許外網(wǎng)指定 IP 訪(fǎng)問(wèn)
create user 'test'@'1.1.1.1' identified by '123456';
指定外網(wǎng)IP1.1.1.1下的用戶(hù)可以連接該數(shù)據(jù)庫(kù)
2.創(chuàng)建數(shù)據(jù)庫(kù)
2.1 格式:create database databasename DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
databasename:數(shù)據(jù)庫(kù)名
注意此處的字符集為utf8mb4,排序規(guī)則為utf8mb4_general_ci
3.給用戶(hù)授權(quán)
3.1 格式:GRANT privileges ON databasename.tablename TO 'username'@'host';
privileges:用戶(hù)的操作權(quán)限,如SELECT,INSERT,UPDATE等,如果要授予所的權(quán)限則使用ALL
databasename:數(shù)據(jù)庫(kù)名
tablename:表名,如果要授予該用戶(hù)對(duì)所有數(shù)據(jù)庫(kù)和表的相應(yīng)操作權(quán)限則可用表示,如.*
給用戶(hù)授權(quán)的前提,必須該用戶(hù)已存在。'test'@'host'中test為用戶(hù)名,host為主機(jī)地址。
TIPS:
| host | scope | description |
|---|---|---|
| localhost | 本機(jī) | localhost不會(huì)被解析成IP地址,直接通過(guò)UNIXsocket連接 |
| 127.0.0.1 | 本機(jī) | 會(huì)通過(guò)TCP/IP協(xié)議連接,并且只能在本機(jī)訪(fǎng)問(wèn) |
| ::1 | 本機(jī) | ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1 |
| 1.1.1.1 | 指定IP地址 | 該IP地址內(nèi)網(wǎng)外網(wǎng)均可 |
| % | 所有IP地址 | 所有IP地址均可訪(fǎng)問(wèn) |
3.2 例子:
授予用戶(hù)通過(guò)外網(wǎng)IP對(duì)于該數(shù)據(jù)庫(kù)的全部權(quán)限
grant all privileges on 'testdb'.* to 'test'@'%'';
授予用戶(hù)在本地服務(wù)器對(duì)該數(shù)據(jù)庫(kù)的全部權(quán)限
grant all privileges on 'testdb'.* to 'test'@'localhost';
用戶(hù)test無(wú)法從internet上直接訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),只能在MYSQL主機(jī)上來(lái)訪(fǎng)問(wèn)。
3.3 刷新權(quán)限:
使用以下語(yǔ)句刷新授權(quán),修改立即生效
flush privileges;
4.撤銷(xiāo)用戶(hù)權(quán)限
4.1 格式:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
4.2 例子:
REVOKE SELECT ON *.* FROM 'test'@'%';
5.修改用戶(hù)密碼
5.1 格式:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
5.2 例子:
SET PASSWORD FOR 'test'@'%' = PASSWORD("123456");