#建立使用者
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';
#授權:對資料夾,對檔案,對檔案某一欄位的許可權
授權的同時會建立使用者,下面是常用的授權命令:
grant all on *.* to ‘egon’@‘192.168.12%’ identified by ‘password’
所有許可權 在哪個表 庫.表 給哪個賬戶 egon賬戶從某個ip 設定密碼
flush privileges;
常用命令
select user(); #檢視當前登入賬戶mysql or mariadb 設定了密碼,仍然不需要密碼就可登入的問題
今天開發中在centos7中安裝mysql5.6版本後,在表中新建了一個weicheng的賬戶,並且設定了密碼,但是在用weicheng賬號登陸mysql發現,如果使用“mysql -uweicheng -p”登陸會報錯,即使密碼正確也不能登入,最後發現,直接用“mysql -uweicheng”不輸入密碼也可以登陸。展開檢視幫助:help grant後來,查詢了資料原因是:應為資料庫裡面有空使用者,通過
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用的管理的主要表。
常用許可權有:select,update,alter,delete
all可以代表除了grant之外的所有許可權
#針對所有庫的授權:*.*
grant select on *.* to 'egon1'@'localhost' identified by '123'; #只在user表中可以查到egon1使用者的select許可權被設定為y
#針對某一資料庫: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: [email protected]
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'@'%';
許可權相關操作
mysql許可權管理
檢視使用者許可權 show grants for 你的使用者 比如 show grants for root localhost mysql 5種許可權級別 global level,database level,table level,column level,routine level。高階別會...
mysql許可權管理
mysql許可權管理 學習目標 連線mysql的必要條件 資料有哪些許可權 data prvileges definition privileges administrator privileges 賦權的操作 mysql help grant 例子 使用mysql自帶的命令,建立一個使用者並賦權 ...
mysql 許可權管理
一 使用者管理 1 開啟服務後啟動mysql服務 2 開啟mysql命令視窗輸入密碼 原始密碼為123456 3 顯示所有資料庫的名稱 show databases 4 使用資料庫 use 資料庫名稱 5 顯示使用資料庫中的所有表 show tables 6 查詢表結構 describe 表名 7 ...