文章首發於 "【博客園 陳樹義】" ,請尊重原創保留原文鏈接。 添加用戶 以root用戶登錄資料庫,運行以下命令: 上面的命令創建了用戶zhangsan,密碼是zhangsan。在mysql.user表裡可以查看到新增用戶的信息: 授權 命令格式:grant privilegesCode on db ...
文章首發於【博客園-陳樹義】,請尊重原創保留原文鏈接。
添加用戶
以root用戶登錄資料庫,運行以下命令:
create user zhangsan identified by 'zhangsan';
上面的命令創建了用戶zhangsan,密碼是zhangsan。在mysql.user表裡可以查看到新增用戶的信息:
授權
命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";
grant all privileges on zhangsanDb.* to zhangsan@'%' identified by 'zhangsan';
flush privileges;
上面的語句將zhangsanDb資料庫的所有操作許可權都授權給了用戶zhangsan。
在mysql.db表裡可以查看到新增資料庫許可權的信息:
也可以通過show grants
命令查看許可權授予執行的命令:
show grants for 'zhangsan';
privilegesCode表示授予的許可權類型,常用的有以下幾種類型[1]:
- all privileges:所有許可權。
- select:讀取許可權。
- delete:刪除許可權。
- update:更新許可權。
- create:創建許可權。
- drop:刪除資料庫、數據表許可權。
dbName.tableName表示授予許可權的具體庫或表,常用的有以下幾種選項:
- .:授予該資料庫伺服器所有資料庫的許可權。
- dbName.*:授予dbName資料庫所有表的許可權。
- dbName.dbTable:授予資料庫dbName中dbTable表的許可權。
username@host
表示授予的用戶以及允許該用戶登錄的IP地址。其中Host有以下幾種類型:
- localhost:只允許該用戶在本地登錄,不能遠程登錄。
- %:允許在除本機之外的任何一臺機器遠程登錄。
- 192.168.52.32:具體的IP表示只允許該用戶從特定IP登錄。
password指定該用戶登錄時的面。
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