許可權管理 我們知道我們的最高許可權管理者是root用戶,它擁有著最高的許可權操作。包括select、update、delete、update、grant等操作。那麼一般情況在公司之後DBA工程師會創建一個用戶和密碼,讓你去連接資料庫的操作,並給當前的用戶設置某個操作的許可權(或者所有許可權)。那麼這時就需要 ...
許可權管理
我們知道我們的最高許可權管理者是root用戶,它擁有著最高的許可權操作。包括select、update、delete、update、grant等操作。那麼一般情況在公司之後DBA工程師會創建一個用戶和密碼,讓你去連接資料庫的操作,並給當前的用戶設置某個操作的許可權(或者所有許可權)。那麼這時就需要我們來簡單瞭解一下:
- 如何創建用戶和密碼
- 給當前的用戶授權
- 移除當前用戶的許可權
如果你想創建一個新的用戶,則需要以下操作:
1.進入到mysql資料庫下
mysql> use mysql Database changed
2.對新用戶增刪改
1.創建用戶: # 指定ip:192.118.1.1的mjj用戶登錄 create user 'mjj'@'192.118.1.1' identified by '123'; # 指定ip:192.118.1.開頭的mjj用戶登錄 create user 'mjj'@'192.118.1.%' identified by '123'; # 指定任何ip的mjj用戶登錄 create user 'mjj'@'%' identified by '123'; 2.刪除用戶 drop user '用戶名'@'IP地址'; 3.修改用戶 rename user '用戶名'@'IP地址' to '新用戶名'@'IP地址'; 4.修改密碼 set password for '用戶名'@'IP地址'=Password('新密碼');
5,查看mysql中的所有用戶
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
6,查看user表結構 需要具體的項可結合表結構來查詢
desc mysql.user;
3.對當前的用戶授權管理
#查看許可權 show grants for '用戶'@'IP地址' #授權 mjj用戶僅對db1.t1文件有查詢、插入和更新的操作 grant select ,insert,update on db1.t1 to "mjj"@'%'; # 表示有所有的許可權,除了grant這個命令,這個命令是root才有的。mjj用戶對db1下的t1文件有任意操作 grant all privileges on db1.t1 to "mjj"@'%';
#mjj用戶對db1資料庫中的文件執行任何操作
grant all privileges on db1.* to "mjj"@'%';
#mjj用戶對所有資料庫中文件有任何操作
grant all privileges on *.* to "mjj"@'%';
#取消許可權
# 取消mjj用戶對db1的t1文件的任意操作
revoke all on db1.t1 from 'mjj'@"%";
# 取消來自遠程伺服器的mjj用戶對資料庫db1的所有表的所有許可權
revoke all on db1.* from 'mjj'@"%";
取消來自遠程伺服器的mjj用戶所有資料庫的所有的表的許可權 revoke all privileges on *.* from 'mjj'@'%';
ps:在公司中,一般情況下是DBA工程師來做這些授權工作。給你一個用戶名和密碼,你來連接就可以了。
4.MySql備份命令行操作
# 備份:數據表結構+數據 mysqldump -u root db1 > db1.sql -p # 備份:數據表結構 mysqldump -u root -d db1 > db1.sql -p #導入現有的數據到某個資料庫 #1.先創建一個新的資料庫 create database db10; # 2.將已有的資料庫文件導入到db10資料庫中 mysql -u root db10 < db1.sql -p