#建立用戶
create user 'egon'@'1.1.1.1' identified by '123';
create user 'egon'@'192.168.1.%' identified by '123';
create user 'egon'@'%' identified by '123';mysql
#受權:對文件夾,對文件,對文件某一字段的權限sql
受權的同時會建立用戶,下面是經常使用的受權命令:數據庫
grant all on *.* to ‘egon’@‘192.168.12%’ identified by ‘password’ide
全部權限 在哪一個表 庫.表 給哪一個帳戶 egon帳戶從某個IP 設置密碼spa
flush privileges;3d
經常使用命令rest
select user(); #查看當前登陸帳戶
mysql or mariadb 設置了密碼,仍然不須要密碼就可登陸的問題code
今天開發中在Centos7中安裝MySQL5.6版本後,在表中新建了一個weicheng的帳戶,而且設置了密碼,可是在用weicheng帳號登錄mysql發現,若是使用「mysql -uweicheng -p」登錄會報錯,即便密碼正確也不能登陸,最後發現,直接用「mysql -uweicheng」不輸入密碼也能夠登錄。 後來,查詢了資料緣由是:應爲數據庫裏面有空用戶,經過 select * from mysql.user where user=''; 查詢若是有,而後經過 use mysql; delete from user where user = ''; 刪除了多餘的空白帳戶, 而後,經過 flush privileges; 重載一次權限表,最後用 service mysqld restart 重啓mysql服務,問題獲得解決,至此mark一下! Tip: 1、必定要記住重啓mysql服務,不然不會生效,本身就是由於沒有重啓msyql致使一直得不到解決! 2、msyql的用戶表在mysql數據庫中的user表中,主要字段有host,user,password等,做爲mysql用的管理的主要表。
查看幫助:help grant
經常使用權限有:select,update,alter,delete
all能夠表明除了grant以外的全部權限blog
#針對全部庫的受權:*.*
grant select on *.* to 'egon1'@'localhost' identified by '123'; #只在user表中能夠查到egon1用戶的select權限被設置爲Yip
#針對某一數據庫:db1.*
grant select on db1.* to 'egon2'@'%' identified by '123'; #只在db表中能夠查到egon2用戶的select權限被設置爲Y
#針對某一個表:db1.t1
grant select on db1.t1 to 'egon3'@'%' identified by '123'; #只在tables_priv表中能夠查到egon3用戶的select權限
#針對某一個字段:
mysql> select * from t3;
+------+-------+------+
| id | name | age |
+------+-------+------+
| 1 | egon1 | 18 |
| 2 | egon2 | 19 |
| 3 | egon3 | 29 |
+------+-------+------+
grant select (id,name),update (age) on db1.t3 to 'egon4'@'localhost' identified by '123';
#能夠在tables_priv和columns_priv中看到相應的權限
mysql> select * from tables_priv where user='egon4'\G
*************************** 1. row ***************************
Host: localhost
Db: db1
User: egon4
Table_name: t3
Grantor: root@localhost
Timestamp: 0000-00-00 00:00:00
Table_priv:
Column_priv: Select,Update
row in set (0.00 sec)
mysql> select * from columns_priv where user='egon4'\G
*************************** 1. row ***************************
Host: localhost
Db: db1
User: egon4
Table_name: t3
Column_name: id
Timestamp: 0000-00-00 00:00:00
Column_priv: Select
*************************** 2. row ***************************
Host: localhost
Db: db1
User: egon4
Table_name: t3
Column_name: name
Timestamp: 0000-00-00 00:00:00
Column_priv: Select
*************************** 3. row ***************************
Host: localhost
Db: db1
User: egon4
Table_name: t3
Column_name: age
Timestamp: 0000-00-00 00:00:00
Column_priv: Update
rows in set (0.00 sec)
#刪除權限
revoke select on db1.* from 'egon'@'%';
權限相關操做