MySQL是一個多用戶的數據庫,最高權限管理者是root用戶,它擁有著最高的權限操作。包括select、update、delete、update、grant等操作。如果有其他用戶想使用MySQL,那么一般情況在公司之后DBA工程師會創建一個用戶和密碼,讓你去連接數據庫的操作,并給當前的用戶設置某個操作的權限(或者所有權限)。那么這時就需要我們來簡單了解一下:
- 如何創建用戶和密碼
- 給當前的用戶授權
- 移除當前用戶的權限
在Mysql中,一切的數據存放在表中,而用戶表存放在mysql庫中的user表,我們使用mysql.user 來表示mysql庫中的user表,如果你想創建一個新的用戶,則需要以下操作:
1.進入到mysql數據庫
mysql> use mysql;
Database changed
2.對用戶列表的查增改刪
查詢用戶語法:select host,user from mysql.user;
mysql> select host,user from mysql.user;
增加用戶語法: create user "<username>"@"<host>" identified by "<password>";
myqsl> create user "pingtai"@"%" identified by "1qe3!QE#";
修改用戶IP地址語法: rename user '<用戶名>'@'<IP地址>' to '<新用戶名>'@'<IP地址>';
修改用戶密碼語法有兩種:1. ALTER USER '用戶名'@'IP' IDENTIFIED BY '密碼';
set password for '用戶名'@'IP地址'=Password('新密碼'); 兩個意思一樣
mysql> rename user 'root'@'%' to 'root'@'19.130.%';
刪除用戶語法: drop user '<用戶名>@'<IP地址>'
mysql> drop user 'test'@'%';
3.對用戶權限的查增改刪
mysql權限有很多,常見的增刪查改是insert delete select update
查詢用戶權限語法:show grant for '<用戶名>'@'<IP地址>'
mysql> show grants for 'root'@'localhost'
授權語法: grant <privileges> on <databasename>.<tablename> to '<username>'@'<host>'
#設置遠程管理員權限,默認不帶grant權限
grant all privileges on *.* to "alex"@'%';
#授權'alex'@'%'用戶僅對db1.t1文件有查詢、插入和更新的操作
grant select,insert,update on db1.t1 to "alex"@'%';
?
#授權'sdata'@'%'用戶對szyd數據庫的全部表只有讀取的權限
grant select on szyd.* to 'sdata'@'%';
改權限也就是增刪權限,撤銷權限的語法是: revoke <privileges> on <數據庫>.<表> from '<用戶名>'@'IP';
# 取消來自遠程服務器的alex用戶對數據庫db1的所有表的所有權限
revoke all on db1.* from 'alex'@"%";
?
#取消'alex'@'%'對szyd數據庫全部表的delete權限
revoke delete on szyd.* from 'alex'@'%';
?
#撤銷'alex'@'%'用戶對所有庫所有表的全部權限
revoke all on *.* form 'alex'@'%';