MySQL——用户管理

目录

一.用户管理

二.用户

1.用户信息

2.创建用户

3.删除用户

[4. 修改用户密码](#4. 修改用户密码)

三.数据库的权限

1.给用户授权

2.回收权限


一.用户管理

如果我们只能使用root用户,root的权限非常大,这样存在安全隐患。这时,就需要使用MySQL的用户管理,可以给不同的用户分配不同的权限,让不同用户执行权限内的操作,让不同的用户看到不同的内容。

二.用户

1.用户信息

在MySQL看来用户信息也是数据,同样存在一张表中,存储在系统数据库mysql的user表中。

字段解释:

  1. host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆。
  2. user: 用户名。
  3. authentication_string: 用户密码通过password函数加密后的。
  4. *_priv: 用户拥有的权限。

2.创建用户

语法:

sql 复制代码
create user '用户名'@'登陆主机/ip' identified by '密码';

说明:

MySQL的用户管理的时候,不仅仅需要认证用户是否注册,还要认证用户登陆的主机是否注册,这两个必须同时满足,才能具备登录MySQL的能力。

localhost代表:本地登录,也可以写成127.0.0.1。

案例:

sql 复制代码
create user 'qing'@'localhost' identified by '123456';

新增一个可以远程登录的用户:

说明:一班MySQL服务端,会被安置在公司内网,访问主机一班也是公司内网主机,这种情况下可以使用,内网IP作为用户的登录IP,但是今天我的MySQL部署在云端, 本机windows在内网,就不能直接使用我的本机备忘IP作为用户的登录IP,使用%全匹配,允许用户使用任意IP登录MySQL。

尝试远端登录:

如果你是第一次尝试使用远端登录云服务器上面的服务,首先要打开对应云服务器的安全组端口。

然后开放MySQL防火墙端口:

root下或者最前面加sudo:

bash 复制代码
firewall-cmd --add-service=mysql

在windows下连接:

关于新增用户这里,需要大家注意,不要轻易添加一个可以从任意地方登陆的user。

3.删除用户

语法:

sql 复制代码
drop user '用户名'@'主机名'

4. 修改用户密码

自己改自己密码:

sql 复制代码
set password=password('新的密码');

root用户修改指定用户的密码

sql 复制代码
set password for '用户名'@'主机名'=password('新的密码');

三.数据库的权限

MySQL数据库提供的权限列表:

1.给用户授权

刚创建的用户没有任何权限。需要给用户授权。

sql 复制代码
grant 权限列表 on 库.表名 to '用户名'@'登陆位置' [identified by '密码'];

权限列表,多个权限用逗号分开:

sql 复制代码
grant select on ...  --赋予查询权限
grant select, delete, create on ....  --赋予查询,删除,创建 权限
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限

*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)

库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)

identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

案例:

赋值权限:

sql 复制代码
grant select on scott.* to 'wangqing'@'%' ;

对数据库的查询没有问题:

由于没有其他权限是不能对标进行插入,删除,修改的:

注意:如果发现赋权限后,没有生效,执行如下指令:

sql 复制代码
flush privileges;

2.回收权限

语法:

sql 复制代码
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

示例:

先给用户insert权限:

sql 复制代码
mysql> grant insert  on scott.* to 'wangqing'@'%' ;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

回收权限:

sql 复制代码
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
相关推荐
江上挽风&sty几秒前
【Django篇】--动手实践Django基础知识
数据库·django·sqlite
奥顺互联V1 分钟前
一次性部署:使用Docker部署PHP应用
大数据·mysql·开源·php
向阳12184 分钟前
mybatis 动态 SQL
数据库·sql·mybatis
胡图蛋.6 分钟前
什么是事务
数据库
小黄人软件8 分钟前
20241220流水的日报 mysql的between可以用于字符串 sql 所有老日期的,保留最新日期
数据库·sql·mysql
张声录113 分钟前
【ETCD】【实操篇(三)】【ETCDCTL】如何向集群中写入数据
数据库·chrome·etcd
无为之士19 分钟前
Linux自动备份Mysql数据库
linux·数据库·mysql
小汤猿人类33 分钟前
open Feign 连接池(性能提升)
数据库
阳冬园1 小时前
mysql数据库 主从同步
数据库·主从同步
XiaoH2331 小时前
培训机构Day15
sql·mysql