自学内容网 自学内容网

MySQL用户管理

虽然之前我进行演示都用的root用户,但是实际上如果都用root用户是很危险的,因此mysql提供了用户管理,可以创建其他用户来使用mysql。

创建用户

在当我们root用户登录时,可以看到一个数据库:mysql。

而在mysql数据库中,有一个表叫user。

 

mysql中的用户信息都存储在表中。

 这个表有很多列属性,我们只看主要的三个属性。

  • host : 该用户可以登录的主机,如果是 localhost,则只能本地登录
  • user :用户名称
  • authentication_string: 该用户的密码通过 password 函数加密后的字符串

因此我们创建用户实际上就是向该表插入数据。

语法: create 'user_name'@'登陆主机/ip' identified by 'password';

通过该语句可以创建一个用户,其中登录主机是 localhost 表明只能本地登录,如果是 % 表明任何主机都可登录,不过这种任何主机都可登录的方式最好不要用。

 而且创建用户的密码是有限制的,设定的密码必须具有一定的安全度mysql才会让你成功设定密码

创建之后,user表中就多出了一个用户。 

然后就能够通过该用户登录MySQL。 

删除用户

删除用户也和删除表中数据一样。

语法: drop user 'user_name'@'host_name' ;

不过删除用户只能root账户删除,大家可以试试。

修改用户密码

修改自身的密码

set password=password('new_password');

root修改其他账户的密码

set password for '用户名'@'主机名'=password('new_password'); 

 在mysql 8.0 之后的设置密码的方式就不同了,只能这样设置了。

alter user 'root'@'localhost' identified with mysql_native_password by 'new_password';

给用户授权

一般一个用户创建的库和表,除了root都可以看到,其他普通用户是看不到的。

但是总是有需求需要让别人访问自己的数据库,于是就能够给别的用户授权了。

grant 权限列表 on .对象名 to '用户名'@'登陆位置' [identified by '密码']
  • 权限列表:多个权限用逗号分号,如果可以给所有权限可以用 all 替代
  • *.* 表示本系统中所有数据库的所有对象
  • 库.* : 表示某个库中的所有对象
  • 库.对象名 : 表示某个库的某个对象
  • identified by可选: 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户   

这里root用户创建了一个库,并在库中创建了一个表,并且将select 的权限给了 lbx 用户。

给了权限之后另一个用户才能查看到库。

但是不能对库进行插入等行为。

 只能进行查看。

收回权限

revoke 权限列表 on .对象名 from '用户名'@'登陆位置'

 这里收回权限后,lbx用户就看不到库了。

刷新权限

如果进行上述所有操作,发现没有反应的话,那就可以刷新权限重新尝试一下。

语句:flush privileges;

总结

以上就是对mysql的用户创建操作的相关内容,相信对大家有一定的帮助。 


原文地址:https://blog.csdn.net/m0_64028711/article/details/137716425

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!