目錄
- 系列教程
- 一、用戶管理
- 1、用戶賬號
- 2、增加刪除賬號
- 3、破解管理賬號密碼
- 二、授權(quán)管理
- 1、授權(quán)
- 2、查詢授權(quán)
- 3、收回授權(quán)
- 總結(jié)
系列教程
MySQL系列之開篇 MySQL關系型數(shù)據(jù)庫基礎概念
MySQL系列之一 MariaDB-server安裝
MySQL系列之二 多實例配置
MySQL系列之三 基礎篇
MySQL系列之四 SQL語法
MySQL系列之五 視圖、存儲函數(shù)、存儲過程、觸發(fā)器
MySQL系列之七 MySQL存儲引擎
MySQL系列之八 MySQL服務器變量
MySQL系列之九 mysql查詢緩存及索引
MySQL系列之十 MySQL事務隔離實現(xiàn)并發(fā)控制
MySQL系列之十一 日志記錄
MySQL系列之十二 備份與恢復
MySQL系列之十三 MySQL的復制
MySQL系列之十四 MySQL的高可用實現(xiàn)
MySQL系列之十五 MySQL常用配置和性能壓力測試
一、用戶管理
1、用戶賬號
用戶的賬號由用戶名和HOST倆部分組成('USERNAME'@'HOST')
HOST的表示:
可以使用通配符表示,%和_;192.168.%即表示這個網(wǎng)段的所有主機
2、增加刪除賬號
主要:在數(shù)據(jù)庫中修改了用戶信息需要執(zhí)行FLUSH PRIVILEGES;來刷新授權(quán)表使其生效
創(chuàng)建
MariaDB [mysql]> CREATE USER 'user1'@'192.168.%';
MariaDB [mysql]> CREATE USER 'user2'@'192.168.%' IDENTIFIED BY 'your_password';
MariaDB [mysql]> SELECT user,host,password FROM user;
+-------+-----------+-------------------------------------------+
| user | host | password |
+-------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | centos7 | |
| user1 | 192.168.% | |
| user2 | 192.168.% | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
+-------+-----------+-------------------------------------------+
刪除
MariaDB [mysql]> DROP USER user2@'192.168.%';
MariaDB [mysql]> SELECT user,host,password FROM user;
+-------+-----------+-------------------------------------------+
| user | host | password |
+-------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | centos7 | |
| user1 | 192.168.% | |
+-------+-----------+-------------------------------------------+
重命名
MariaDB [mysql]> RENAME USER user1@'192.168.%' TO testuser@'%';
MariaDB [mysql]> SELECT user,host,password FROM mysql.user;
+----------+-----------+-------------------------------------------+
| user | host | password |
+----------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | centos7 | |
| testuser | % | |
+----------+-----------+-------------------------------------------+
修改密碼
MariaDB [mysql]> SET PASSWORD FOR testuser@'%' =PASSWORD('testpass');
MariaDB [mysql]> SELECT user,host,password FROM mysql.user;
+----------+-----------+-------------------------------------------+
| user | host | password |
+----------+-----------+-------------------------------------------+
| root | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
| root | centos7 | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | centos7 | |
| testuser | % | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |
+----------+-----------+-------------------------------------------+
其他修改密碼的方法:
UPDATE user SET password=PASSWORD('testpass') WHERE user='testuser';
# mysqladmin -uroot -poldpass password 'newpass'
3、破解管理賬號密碼
空數(shù)據(jù)庫的情況下恢復密碼
# systemctl stop mariadb
# rm -rf /var/lib/mysql/* #刪庫跑路
# systemctl start mariadb
有數(shù)據(jù)的情況下恢復密碼
1)在/etc/my.cnf配置文件的[mydqld]下添加skip-grant-tables和skip-networking參數(shù)
2)# systemctl restart mariadb 重啟服務
3)執(zhí)行mysql登錄到數(shù)據(jù)庫
4)MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE user='root' AND host='localhost'; #更新密碼
5)MariaDB [(none)]> FLUSH PRIVILEGES; #刷新授權(quán)表
6)退出,修改配置文件,刪除skip-grant-tables和skip-networking參數(shù),重啟服務
也可以在啟動mysqld進程時,為其使用如下選項:
--skip-grant-tables
--skip-networking
二、授權(quán)管理
1、授權(quán)
語法:GRANT priv_type ON [object_type] priv_level TO user@'%' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
授權(quán)時如果用戶不存在則創(chuàng)建,所以我們一般不會單獨去創(chuàng)建一個用戶,而是授權(quán)創(chuàng)建一塊完成。
priv_type 授權(quán)類型
- SELECT
- INSERT
- UPDATE
- DELETE
- CREATE
- DROP
- INDEX
- ALTER
- SHOW DATABASES
- CREATE TEMPORARY TABLES
- LOCK TABLES
- CREATE VIEW
- SHOW VIEW
- CREATE USER
- ALL PRIVILEGES 或 ALL
object_type 授權(quán)對象
- TABLE
- FUNCTION
- PROCEDURE
priv_level 授權(quán)級別
- *或*.* 表示所有庫
- db_name.* 表示指定庫中的所有表
- db_name.tbl_name 指定庫中的指定表
- tbl_name 表示當前庫的表
- db_name.routine_name 表示指定庫的函數(shù),存儲過程,觸發(fā)器
WITH GRANT OPTION
- MAX_QUERIES_PER_HOUR count
- MAX_UPDATES_PER_HOUR count
- MAX_CONNECTIONS_PER_HOUR count
- MAX_USER_CONNECTIONS count
MariaDB [school]> GRANT SELECT(stuid,name) ON TABLE school.students TO admin@'%' IDENTIFIED BY 'admin'; #把students表的stuid和name字段的查詢權(quán)限授權(quán)于admin@'%'用戶
MariaDB [school]> FLUSH PRIVILEGES; #刷新授權(quán)表
2、查詢授權(quán)
MariaDB [school]> SHOW GRANTS FOR admin@'%'\G #查看指定用戶的權(quán)限
*************************** 1. row ***************************
Grants for admin@%: GRANT USAGE ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441'
*************************** 2. row ***************************
Grants for admin@%: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'
[root@working ~]# mysql -uadmin -padmin -h192.168.0.7
MariaDB [(none)]> SHOW GRANTS FOR CURRENT_USER()\G #查詢自己的權(quán)限
*************************** 1. row ***************************
Grants for admin@%: GRANT USAGE ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441'
*************************** 2. row ***************************
Grants for admin@%: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'
3、收回授權(quán)
MariaDB [school]> REVOKE SELECT(stuid) ON school.students FROM admin@'%'; #收回admin@'%'用戶對stuid字段的查詢權(quán)限
總結(jié)
到此這篇關于MySQL用戶與授權(quán)的文章就介紹到這了,更多相關MySQL用戶與授權(quán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- MySQL創(chuàng)建用戶與授權(quán)方法
- MySql增加用戶、授權(quán)、修改密碼等語句
- MySQL創(chuàng)建用戶與授權(quán)及撤銷用戶權(quán)限方法
- Mysql中新建用戶及授權(quán)的方法分享
- MySQL中用戶授權(quán)以及刪除授權(quán)的方法
- mysql創(chuàng)建數(shù)據(jù)庫,添加用戶,用戶授權(quán)實操方法
- mysql5.7創(chuàng)建用戶授權(quán)刪除用戶撤銷授權(quán)
- MySql安裝與配置方法(MySQL添加用戶、刪除用戶與授權(quán))
- 在WIN命令提示符下mysql 用戶新建、授權(quán)、刪除,密碼修改
- MySQL 創(chuàng)建用戶、授權(quán)用戶、撤銷用戶權(quán)限、更改用戶密碼、刪除用戶(實用技巧)