mysql用户创建与授权:在多用户情形下,为了避免用户访问或者操作不属于自己的数据,需要使用用户权限将不同用户的数据隔离开来。mysql的用户授权可以精确到表、操作和某个IP地址。
创建用户
create user 'username'@'host' identified by 'password';
用法说明
: 用户名
: ip地址,用户在哪个主机登录,如果是本机可以使用localhost,如果允许任意主机使用%代替
: 用户登录密码,如果没有密码留空
示例
create user 'guest'@'%' identified by '12345678';create user 'guest'@'localhost' identified by '';create user 'guest'@'%';
授权
grant [privileges] on [database.tablename] to 'username'@'host';
用法说明
: 授予用户的权限,包括select, insert, update, delete。如何授予所有权限,可以使用all代替
: 数据名
: 表名,如果是所有表格,可以使用*代替
示例
grant select on test.user to 'guest'@'localhost';grant all on *.* to 'guest'@'%';
注意,上述授权的用户不能给其他用户授权,即不能执行grant命令,如果需要授予该权限,可以在命令后追加with grant option。
grant [privileges] on [database.tablename] to 'username'@'host' with grant option;
撤消授权
revoke [privileges] on [database].[tablename] from 'username'@'host';
用法说明
privileges, database和tablename用法和授权部分相同。
示例
revoke all on test.user from 'guest'@'localhost';
查看用户权限
show grants for 'username'@'host';
示例
show grants for 'guest'@'localhost';
修改用户密码
set password for 'username'@'host' = password('newpassword');
示例
set password for 'guest'@'localhost' = password('12345678');
删除用户
drop user 'username'@'host';
示例
drop user 'guest'@'localhost';
参考
MySQL创建用户与授权