手记

【学习打卡】第20天--玩转MySQL8.0新特性第二章账户与安全

课程名称 :玩转MySQL8.0新特性


课程章节:账户与安全


讲师:董旭阳



课程内容:

    

mysql8.0新特性

1,账户与安全

2,窗口函数

3,优化器索引

4,InnoDB增强

5,通用表达式

6,json增强



一、账户与安全

    1、强制分开用户创建和用户授权

    #、prompt 字符:可以更改mysql命令提示符

二、认证插件更新

    1、之前版本是mysql_native_password,8.0版本是caching_sha2_password

         mysql> show variables like '%default%';
         +---------------------------------+-----------------------+
         | Variable_name | Value |
         +---------------------------------+-----------------------+
         | default_authentication_plugin | caching_sha2_password |

    2、由于认证插件的更新,客户端需要升级才可以连接到8.0,或者服务器修改用户认证插件:

         alter user root@'%' identified with mysql_native_password by '123';

三、密码管理

    1、8.0版本开始限制重复使用以前的密码

         password_history=3          --不允许和最近三次密码一样

         password_reuse_interval=90 --不允许和最近90天内的密码一样

         password_require_current=ON --修改密码需要提供当前密码

         语句:

              alter user user@host identified by 'new_password' replace 'cur_password';

    2、这三个变量可以全局设置或者利用alter user user@host identified by '123' password_history 针对用户设置

    3、历史密码都是保存在mysql.password_history

    #、set persist var=value  --对变量持久化修改

    原理:将persist设置的变量写入到数据目录下的配置文件中(json格式),服务器启动时也会读取该配置文件

四、角色管理

    1、8.0版本提供了角色管理功能,角色是一组权限的集合,即把一组权限放在一起并起一个名字,就成为了一个角色

    2、角色分配步骤

         创建角色

                   create roll 'new_role';     --创建了一个用户

         给角色分配权限

                   grant insert,select on test.* to 'new_role';

         给用户指定角色

                   grant [default] 'new_role' to 'user'@host; --不使用default的话,默认登录后需要用set role激活角色,使用default后就已经激活

          指定用户

                   set role 'new_role';

    3、查看用户权限

         show grant for 'user'@host using 'new_role';

    4、显式当前用户使用的角色

         select current_role();

五、优化器索引

    1、隐藏索引(invisible index)

              不会被优化器使用,但是仍然需要进行维护

              create index index_name on tab(col) invisible;

        #、如果想设置优化器对隐藏索引可见,可以修改optimizer_switch中的use_invisible_index=on;(可以会话级别修改)

        #、修改索引可见性

              alter table tab alter index index_name visible;

        #、主键不能设置为不可见

         使用场景:

               软删除     --删除一个索引,并不用真的删除,将其设置为隐藏索引即可

    2、降序索引

         8.0版本中只有innodb的Btree支持降序索引

         8.0版本中不再对group by操作进行隐式排序

    3、函数索引

          支持在索引中使用函数(表达式)的值

          支持降序索引,支持json数据的索引

          函数索引基于虚拟列功能实现


课程收获 :

                 了解了mysql 8.0 的新的特性,掌握了账号与安全的相关知识。内容实用,简洁易懂,逻辑清晰。



0人推荐
随时随地看视频
慕课网APP