以root用戶登陸數據庫,運行如下命令:html
create user zhangsan identified by 'zhangsan';
上面的命令建立了用戶zhangsan,密碼是zhangsan。在mysql.user表裏能夠查看到新增用戶的信息:mysql
受權
命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";sql
grant all privileges on zhangsanDb.* to zhangsan@'%' identified by 'zhangsan'; flush privileges;
上面的語句將zhangsanDb數據庫的全部操做權限都受權給了用戶zhangsan。數據庫
在mysql.db表裏能夠查看到新增數據庫權限的信息:服務器
也能夠經過show grants
命令查看權限授予執行的命令:markdown
show grants for 'zhangsan';
privilegesCode表示授予的權限類型,經常使用的有如下幾種類型[1]:app
- all privileges:全部權限。
- select:讀取權限。
- delete:刪除權限。
- update:更新權限。
- create:建立權限。
- drop:刪除數據庫、數據表權限。
dbName.tableName表示授予權限的具體庫或表,經常使用的有如下幾種選項:ide
- .:授予該數據庫服務器全部數據庫的權限。
- dbName.*:授予dbName數據庫全部表的權限。
- dbName.dbTable:授予數據庫dbName中dbTable表的權限。
username@host
表示授予的用戶以及容許該用戶登陸的IP地址。其中Host有如下幾種類型:post
- localhost:只容許該用戶在本地登陸,不能遠程登陸。
- %:容許在除本機以外的任何一臺機器遠程登陸。
- 192.168.52.32:具體的IP表示只容許該用戶從特定IP登陸。
password指定該用戶登陸時的面。spa
flush privileges表示刷新權限變動。
文章首發於【博客園-陳樹義】,請尊重原創保留原文連接。
修改密碼
運行如下命令能夠修改用戶密碼
update mysql.user set password = password('zhangsannew') where user = 'zhangsan' and host = '%'; flush privileges;
刪除用戶
運行如下命令能夠刪除用戶:
drop user zhangsan@'%';
drop user命令會刪除用戶以及對應的權限,執行命令後你會發現mysql.user表和mysql.db表的相應記錄都消失了。
經常使用命令組
建立用戶並授予指定數據庫所有權限:適用於Web應用建立MySQL用戶
create user zhangsan identified by 'zhangsan'; grant all privileges on zhangsanDb.* to zhangsan@'%' identified by 'zhangsan'; flush privileges;
建立了用戶zhangsan,並將數據庫zhangsanDB的全部權限授予zhangsan。若是要使zhangsan能夠從本機登陸,那麼能夠多賦予localhost權限:
grant all privileges on zhangsanDb.* to zhangsan@'localhost' identified by 'zhangsan';
參考資料
- [1].百度.更多關於MySQL數據庫權限類型(PrivilegesCode).[DB/OL].2013-07-13
- [2].博客園.MySQL添加用戶、刪除用戶與受權.[DB/OL].2011-12-15