「MySQL-03」用户管理与给用户授权

目录

一、用户管理

1. 用户信息

2. 创建用户

3. 删除用户

4. 修改用户密码

二、给用户授权

0.MySQL数据库提供的权限列表

1. 给用户授权

2. 回收权限


一、用户管理

1. 用户信息

1.0 数据库mysql和user表
        安装好 MySQL后,里面会有一个默认的数据库mysql里面有一个user表。MySQL 中的用户,都存储在数据库 mysql user 表中。
「MySQL-03」用户管理与给用户授权_第1张图片
所有的用户管理工作,全部都在这张表中进行。即:所有用户管理工作对应的sql,本质其实都是对这个表进行增删查改。

1.1 查询所有用户的所有信息
        先进入数据库mysql  :  use mysql;
        再使用语句: select * from user\G 查询所有用户信息。
*************************** 1. row ***************************
                  Host: localhost
                  User: root
           Select_priv: Y
                    …………
 authentication_string: *************************
                    …………


字段解释:
    Host   : 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
    User   : 用户名
    *_priv : 用户拥有的权限(Y表示有权限,N表示没有权限)
    authentication_string: 用户密码通过password函数加密后的

1.2 查询所有用户的主要信息
        使用语句: select host,user,authentication_string from user; 查询所有用户的主要信息。
「MySQL-03」用户管理与给用户授权_第2张图片

字段解释:

        host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆。如果是'%'表示可以从任意主机登录。

        user: 用户名。

        authentication_string: 用户密码通过password函数加密后的。

2. 创建用户

  • 语法:create user '用户名'@'登陆主机/ip' identified by '密码';
  • 示例:create user 'test'@'localhost' identified by '123';
创建用户时如果报错,可以先使用  flush privileges; 刷新权限,再重新执行上面的语句。
「MySQL-03」用户管理与给用户授权_第3张图片

 当然我们也可以使用insert语句进行插入,但是不推荐。

3. 删除用户

  • 语法:drop user '用户名'@'主机名'
  • 示例:drop user 'test'@'localhost';
「MySQL-03」用户管理与给用户授权_第4张图片

4. 修改用户密码

  • 修改当前登录MySQL用户的密码:set password=password('新密码'); 

  • root用户修改指定用户的密码:set password for '用户名'@'主机名'=password('新密码');


二、给用户授权

0.MySQL数据库提供的权限列表

「MySQL-03」用户管理与给用户授权_第5张图片

1. 给用户授权

1.1 给用户授予指定数据库或表的指定权限

  • 语法  :  grant 权限列表 on 库[.表名] to '用户名'@'登陆位置'
  • 示例  :  
    grant select on base.table to 'test'@'localhost'
    grant select, delete, create on base.table to 'test'@'localhost-- 多个权限用逗号分开
    grant all on base.table to 'test'@'localhost' -- all表示赋予该用户在该库/表上的所有权限

1.2 查看指定用户现有权限

        show grants for ' 用户名 ' @ ' 登陆位置 ';

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

2. 回收权限

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

示例:revoke all on test.* from 'test'@'localhost';


------------------------END-------------------------

才疏学浅,谬误难免,欢迎各位批评指正。

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