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)!