????我們知道我們的最高權限管理者是root用戶嵌屎,它擁有著最高的權限,包括select胳岂、update编整、delete、grant等操作乳丰。一般在公司里DBA工程師會創(chuàng)建一個用戶和密碼掌测,讓你去連接數(shù)據(jù)庫的操作,并給當前的用戶設置某個操作的權限(或者所有權限)产园。
1汞斧、對新用戶的增刪改
# 創(chuàng)建用戶
# 指定IP為192.168.1.2的robot用戶登陸
create user 'robot'@'192.168.1.2' identified by '1234';
# 指定ip為192.168.開頭的robot用戶登陸
create user 'robot'@'192.168.%.%' identified by '123';
# 指定任何ip的robot用戶登陸
create user 'robot'@'%' identified by '123';
# 刪除用戶
drop user '用戶名'@'可訪問途徑';
# 修改用戶名
rename user '用戶名'@'可訪問路徑' to '新用戶名'@'可訪問路徑';
# 修改密碼
set password for '用戶名'@'可訪問路徑'=Password('新密碼');
# 取消全局密碼復雜度策略
set global validate_password_policy=0;
2、對當前的用戶授權
# 查看權限
show grants for '用戶名'@'IP地址';
# 刷新授權表
flush privileges;
# 授權
# 授權robot用戶從192.168.1.2主機復制數(shù)據(jù)(用于主從復制)
grant replication slave on *.* to 'robot'@'192.168.1.2'
# 授權robot用戶僅對db下 的tb文件有查詢/插入/更新的操作
grant select, insert, update on db.tb to 'robot'@'%';
# 授權所有的權限(不包括grant命令什燕,此命令只有root用戶擁有)
grant all privileges on db.tb to 'robot'@'%';
# 此時robot用戶可對db庫下的所有文件執(zhí)行任何操作
grant all privileges on db.* to 'robot'@'%';
# 此時robot用戶可對所有數(shù)據(jù)庫及文件執(zhí)行任何操作
grant all privileges on *.* to 'robot'@'%';
# 取消授權
# 取消robot用戶對db下的tb文件的所有權限
revoke all on db.tb from 'robot'@'%';
# 取消來自遠程服務器的robot用戶對數(shù)據(jù)庫db下所有表的所有權限
revoke all on db.* from 'robot'@'%';
# 取消來自遠程服務器的robot用戶對所有數(shù)據(jù)庫及表的權限
revoke all privileges on *.* from 'robot'@'%';
3粘勒、備份數(shù)據(jù)庫
# 備份 數(shù)據(jù)表結構 + 數(shù)據(jù)
mysqldump -u root db > db.sql -p
# 備份:數(shù)據(jù)表結構
mysqldump -u root -d db > db.sql -p
# 備份:所有庫
mysqldump -u root -p
# 導入
create database new_db;
mysqldump -u root -d new_db < db.sql -p