mysql数据库创建用户、赋权、修改用户密码

创建新用户

create user lisi identified by '123456';

查看创建结果:

 

授权

命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";

命令说明:

privilegesCode表示授予的权限类型,常见有:

  1. all privileges:所有权限;
  2. select:读取权限;
  3. delete:删除权限;
  4. update:更新权限;
  5. create:创建权限;
  6. drop:删除数据库、数据表权限。

dbName.tableName表示授予权限的具体库或表,常用有:

  1. “ *.* 点号表示授予用户所有数据库和表的权限;
  2. dbName.*:授予dbName数据库所有表的权限;
  3. dbName.dbTable:授予数据库dbName中dbTable表的权限。   

username@host中的host表示允许登录的IP,常见有:

  1. localhost只允许该用户在本地登录,不能远程登录;
  2. %:允许远程登录;
  3. 192.168.12.34具体的IP表示只允许该用户从特定IP登录。

新建一个数据库 dblisi:create database dblisi;

赋权李四去使用数据库dblisi:允许远程,密码为123456

grant all privileges on dblisi.* to lisi@'%' identified by '123456';

刷新权限:flush privileges;

退出用账号lisi登录:mysql -u lisi -p

输入密码123456

登陆成功后切换数据库:

 

可见只有数据库dblisi的使用权。

update mysql.user set password = password('12345678') where user = 'lisi' ;

 

注意:在mysql8的版本中授权命令发生了改变,先: create user root@‘%’  identified by '123456'; 再:grant all privileges on *.*  to 'root'@'%';

里面的*和%就自选了。

 

 

修改用户密码

直接修改登录用户的密码:

 

 虽然0 rows affected,刷新失败,但是退出去用密码123可以登录进来;

远程也能连接:

 

 

 登录root,修改密码为123,刷新,如下:

 

 同样 0 rows affected,但是刷新成功;

远程登录却失败:

 

 

这是个奇怪的现象。看来修改root密码用set password并不行。换一个方式:

update mysql.user set authentication_string=password('123') where user='root';
刷新:flush privileges;

连接成功!

 

 

 注意,新版的mysql下authentication_string才是密码字段。

 

删除用户

drop user username@'%';

posted @ 2019-12-19 23:36  天青色wy  阅读(3470)  评论(0编辑  收藏  举报