三种新建用户的方法

三种新建用户的方法

   张吉吉     2019年10月24日 02:24     1615    

1、CREATE USER或者GRANT

在执行上述语句的时候,数据库会修改相应的用户授权表,添加或者修改用户的权限。

在mysql.user表中添加一条记录,用户存在会返回错误。

获取哈希密码

SELECT PASSWORD('zhang');

CREATE USER '用户名'@'主机(localhost,ip,%)' IDENTIFIED BY '密码';

IDENTIFIED BY 并不是一定存在的。如果此账户没有密码可以省略这个部分。

%:对所有主机开放权限

IDENTIFIED PASSWORD:使用hash密码。

IDENTIFIED WITH使用其他的验证方式(了解),其和IDENTIFIED BY是互斥的。

给用户赋予权限

GRANT all privileges ON *.* TO '用户名'@'%';


2、使用GRANT去增加用户

GRANT 权限1,权限2 ON 库名.表名 TO '用户名'@'主机' IDENTIFIED BY '密码';

例如:

建立一个用户testuser密码为123456,所有ip均可访问,并将所有库所有表的权限赋予此用户。

GRANT all privileges ON *.* TO 'testuser'@'%' IDENTIFIED BY '123456';

mysql的8.0版本无法使用以上方法创建用户,使用上边create user的方法。

然后执行flush privileges;


3、直接修改表

INSERT INTO mysql.user(Host,User,Password,[privilegelist]) VALUSE('host','user',PASSWORD('password'),privilegevaluselist);

当前四个安全列没有设置默认值的时候,是不允许进行插入的。


加密方式:

mysql8.0版本的加密方式默认是caching_sha2_password

mysql5.6 5.7版本的加密方式是mysql_native_password

所以如果要在8.0版本中以mysql_native_password加密的话,只需要加上mysql_native_password字段。

例如:

CREATE USER 'testroot'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

GRANT all privileges ON *.* TO 'testroot'@'%';

文章评论

0

其他文章