Linux Mysql資料庫安全配置 目錄: 1.修改mysql管理員賬號root的密碼(2種方法) 2.修改mysql管理員賬號root 3.mysql管理員root賬號密碼遺忘解決辦法(2種方法) 4.創建資料庫用戶(3種方法) 5.mysql資料庫許可權管理 本地許可權 網路許可權 撤銷許可權 刪除用 ...
Linux Mysql資料庫安全配置
目錄:
1.修改mysql管理員賬號root的密碼(2種方法)
2.修改mysql管理員賬號root
3.mysql管理員root賬號密碼遺忘解決辦法(2種方法)
4.創建資料庫用戶(3種方法)
5.mysql資料庫許可權管理
本地許可權
網路許可權
撤銷許可權
刪除用戶
一、修改mysql管理員賬號root的密碼
方法一:shell命令
mysqladmin -u root -p password "123"
2.查看密碼存放的表
方法二:mysql資料庫命令
mysql>use mysql;
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES; #刷新
測試密碼修改是否成功
二、修改mysql管理員賬號root
update mysql.user set user="admin" where user="root" and host="localhost";
flush privileges;
測試
三、mysql管理員root賬號密碼遺忘
方法一:
killall -TERM mysqld
mysqld_safe --skip-grant-tables &
mysql -u admin
mysql>update user set password=password('123456') where user='admin' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
重新啟動MySQL,使用新密碼登錄
設置新的密碼,並刷新修改
測試,重啟mysqld服務用新的密碼登錄
方法二:
修改/etc/my.cnf
在[Mysqld]下添加:
skip-grant-tables
重啟MySQL服務
mysql -u root
mysql>update user set password=password('123') where user='admin' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
修改/etc/my.cnf 刪除skip-grant-tables
重新啟動MySQL,使用新密碼登錄
測試
修改/etc/my.cnf 刪除skip-grant-tables
重新啟動MySQL,使用新密碼登錄
四、創建資料庫用戶
方法一:
INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'yuzly', PASSWORD('yuzly'), 'Y', 'Y', 'Y');
方法二:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'yuzly';
方法三:通過新用戶授權創建資料庫用戶
五、許可權管理
本地許可權
1.創建一個zhang用戶,只給select許可權,然後查看許可權
2.登錄zhang用戶,mysql -uzhang -pyuzly測試,創建一個表,下圖顯示被拒絕,當前賬戶沒有create許可權
3.登錄管理員賬戶,給zhangsan賬戶添加create許可權
4.重新登錄zhangsan賬戶,測試是否具有create許可權,下圖說明具有create許可權
5.插入一條數據,下圖提示沒有insert許可權
6.登錄管理員賬戶,給zhangsan賬戶添加insert許可權
7.重新登錄zhangsan賬戶,測試是否具有insert許可權,下圖說明具有insert許可權
8.創建的新用戶,預設沒有任何許可權,下圖可以看到創建的用戶預設是沒有任何許可權的
9.登錄新創建的用戶mysql -uabcd -pyuzly,測試,下圖可以看到abcd沒有select等許可權,用show只能查看mysql系統自帶的東西,別的用戶創建的資料庫等看不到
遠程連接許可權
1.創建一個賬戶,賦予遠程登錄許可權
grant all on userdb.* to 'abc'@'10.10.10.200' identified by 'yuzly';
flush privileges;
2.測試,從另一臺Linux的Mysql客戶端登錄驗證
3.下圖可以看到,abc用戶對userdb資料庫具有任何許可權,但對別的資料庫沒有任何許可權,例如mysql.user
4.遠程連接限制一個網段
5.測試
撤銷許可權
revoke all on userdb.* from 'zhangsan'@'localhost';
測試,撤消zhangsan賬戶的許可權是否生效
刪除賬戶
delete from mysql.user where user="aaa" and host="localhost";
---------------------------------------------------------------------------------------------------
Mysql資料庫基礎學習筆記:https://www.cnblogs.com/yuzly/p/10582295.html