【MySQL】:用户管理

用户管理

  • 一.用户
    • 1.用户信息
    • 2.创建用户
    • 3.修改密码
    • 4.删除用户
  • 二.数据库权限
    • 1.给用户授权
    • 2.回收权限

【MySQL】:用户管理_第1张图片

如果在以下操作中出现以下报错

在这里插入图片描述

可以使用刷新权限

在这里插入图片描述

一.用户

1.用户信息

MySQL中的用户,都存储在系统数据库mysql的user表中。

【MySQL】:用户管理_第2张图片

字段解释:

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

所以这里有一种非常粗暴的方法添加用户,直接使用insert向user表里进行插入即可。

2.创建用户

直接插入法实在过于麻烦并且危险,所以我们一般使用mysql专门的创建语句。注意:这些语句本质也是在对user表进行修改。

语句:create user ‘用户名’@‘登陆主机/ip’ identified by ‘密码’;

接着进行创建

【MySQL】:用户管理_第3张图片

但是这种创建的用户只允许进行本地登陆,为了能进行远程登陆,我们可以使用下面的方法。

【MySQL】:用户管理_第4张图片

%就代表任意。注意:在一般工程里是严禁使用%的,它是不安全的。

3.修改密码

当然可以直接修改use表,但不安全。

修改自己的密码

set password=password(‘新的密码’);

用root修改密码

set password for ‘用户名’@‘主机名’=password(‘新的密码’)

在这里插入图片描述

4.删除用户

当然我们可以直接删除user表里的数据,但这样很不安全,所以使用专门的语句。

语法:drop user ‘用户名’@‘主机名’

【MySQL】:用户管理_第5张图片

二.数据库权限

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

【MySQL】:用户管理_第6张图片

1.给用户授权

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

语法:grant 权限列表 on 库.对象名 to ‘用户名’@‘登陆位置’ [identified by ‘密码’]

说明:

1.权限列表,多个权限用逗号分开
2.*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
3.库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
4.identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

再开一个终端,进行双向查看,一个root,一个普通账户

【MySQL】:用户管理_第7张图片

在root终端里创建一个rootDB库,向里面添加些表

在这里插入图片描述
【MySQL】:用户管理_第8张图片

很明显创建的库在普通终端里是无法看见的

【MySQL】:用户管理_第9张图片

给用户chz赋予rootDB数据库下所有文件的select权限

在这里插入图片描述

【MySQL】:用户管理_第10张图片

查看给chz的权限

语法:show grants for ‘用户名’@‘主机’;

【MySQL】:用户管理_第11张图片

2.回收权限

revoke 权限列表 on 库.对象名 from ‘用户名’@‘登陆位置’;

【MySQL】:用户管理_第12张图片

你可能感兴趣的:(MySQL,mysql,android,数据库)