在MySQL的线上环境中,如果存在多个项目或功能使用同一个数据库切使用的库或表不同时,一般会为不同的项目或功能创建不同的用户和只对需要的库有读或写的权限。
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
删除用户
DROP USER 'username'@'host';
- username: 用户名
- host: 可以访问的主机,如果本地用
localhost
,远程使用%
- password: 密码
授权
GRANT privileges ON databasename.tablename TO 'username'@'host'
撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
- privileges: 赋予的权限。如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
- databasename: 授权的数据库,不限制数据库可以用’.‘
- tablename: 授权的表, 不限制表可以用
databasename.*
- ‘username’@’host’: 标识授权的用户
示例
// 创建本地账户zngw
CREATE USER 'zngw'@'localhost' IDENTIFIED BY '123456';
// 创建远程账户zngw
CREATE USER 'zngw'@'%' IDENTIFIED BY '123456';
// 本地账户zngw完全操作guoke库
GRANT ALL ON guoke.* TO 'zngw'@'localhost';
// 远程账户zngw只读guoke库
GRANT SELECT ON guoke.* TO 'zngw'@'%';