一、mysql8修改了安全规则,不能像mysql5.7 一次性创建用户并授权,需要分批创建。
1、注意在MySQL8.0版本中创建用户一定要在配置文件中增加如下内容,来兼容旧的程序运行。
default_authentication_plugin=mysql_native_password
2、创建用户选项说明
创建用户
create user 'user1'@'%' identified by '123456';
创建用户说明:
user1为自定义的用户名。
host为登录域名。为% 时表示为任意ip,为localhost时表示本机,或者填写指定的ip地址。
password 为密码
二、、MySQL8的权限分级
1、授予 MySQL 帐户的权限决定了该帐户可以执行哪些操作。MySQL 特权在它们应用的上下文和不同的操作级别上有所不同:
-
管理权限使用户能够管理 MySQL 服务器的操作。这些权限是全局的,因为它们不特定于特定的数据库。
-
数据库权限适用于数据库及其中的所有对象。可以为特定数据库或全局授予这些权限,以便它们适用于所有数据库。
-
可以为数据库中的特定对象、数据库中给定类型的所有对象(例如,数据库中的所有表)或全局为所有对象授予表、索引、视图和存储例程等数据库对象的权限所有数据库中给定类型的对象。
-
database-all : 全库级别 *.* ---> 管理员
-
单库级别 : test.* ---> 业务层面
-
tables : 单表级别 test.t1
-
columns : select(id,name)
2、MySQL8权限的类型
权限列表参考MySQL8官方文档
3、授权基本规则
开发用户 ---》 测试库,无drop权限
测试人员 ---》 测试库,无drop权限
维护DBA ---》生产库
稽核人员 ---》 生产库
业务访问 ---》 查、增、删特定的数据库表
管理员 : ALL
开发 : Create ,Create routine,Create temporary tables,Create view,Delete ,Event
,Execute,Insert ,References,Select,Show databases ,Show view ,Trigger,Update
监控 : select , replication slave , client supper
备份 : ALL
主从 : replication slave
业务 : insert , update , delete ,select
三、MySQL8授权
1、管理员授权
mysql> create user 'admin'@'%' identified by '123456';
mysql> grant all on *.* to admin@'%';
普通用户单库授权
mysql> grant select,update,delete,insert on dev.* to 'dev'@'192.168.0.%';