1、创建用户
create user 'username'@'host' identified by 'password';
参数说明:
username:用户名。
host:可以连接的的主机。'localhost'表示只能本机连接,'%'表示任何一台机器都可以连接,也可以通过ip地址,规定某台远程主机可以连接。
password:连接密码。''表示不需要密码。
例:create user 'jerry'@'localhost' identified by '123456';//只有本地可以连接
create user 'jerry' identified by '';//任何主机都可以连接,而且不需要密码
2、授权
grant privileges on databasename.tablename to 'username'@'host';
参数说明:
privileges:用户的操作权限 如select update delete insert。如果想拥有所有权限,可以使用all,默认除了grant权限,其他权限都拥有。
databasename:授权的数据库名,表示可以对哪个数据库进行操作。 如果想对所有数据库可以操作,使用*
tablename:授权的表名,表示可以对哪个表进行操作。如果想对所有表可以操作,使用*
例:grand select,insert on *.* 'jerry'@'localhost';
grand all on db1.tb1 to 'jerry'@'localhost';
grand all on *.* to 'jerry'@'localhost';
mysql的权限说的是服务器端的权限。
3、创建用户并授权
grant privileges on databasename.tablename to 'username'@'host' identified by 'password';
例:grant all on *.* to 'hello'@'localhost' identified by '123456';
使用这种方式创建用户,如果用户存在了,权限不会有变化,但可以修改密码。如果用户不存在,则创建用户并授权,立即生效。
4、使用户生效
使用先创建用户,再授权的方式创建用户,需要执行下面的命令,使用户权限生效。
flush privileges;
必须执行flush privileges;否则ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES )
5、设置与修改密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
6、撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
具体可看某个用户的权限。
SHOW GRANTS FOR 'username'@'host';