mysql5.5以上 用户的操作

时间:2023-11-25 22:39:44

mysql5.5以上 用户的操作(转)

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';