简单记录下,可能有些杂乱
root用户登录mysql
创建用户
create user 要创建的用户名@允许连接的ip identified by '用户名对应的密码';
flush privileges; //刷新权限
举个例子:
create user test1@localhost identified by 'test1';
flush privileges; //创建user为test1 password为test1的用户来登录mysql,只允许本机连接登录,不可远程访问
create user test2@'%' identified by 'test2';
flush privileges; //创建user为test2 password为test2的用户来登录mysql,允许所有ip连接登录,允许远程访问
已经创建的用户除了可以通过命令来登录mysql外,还可以直接在navicat等工具上用新创建的用户登录Mysql
授予权限
grant 权限类型 on 数据库名.表名 to 用户名@允许连接的ip地址 with grant option;
flush privileges; //刷新权限(实际上不用刷新也可生效)
举个例子:
grant select,update,insert,delete on iterp.dept_info to text_view5@localhost with grant option; //授予 slect,update,insert,delete操作权限到iterp数据库的dept_info表下,把这些权限授予到登录用户为text_view5的情况下,只允许本机连接登录mysql,不可远程访问。with grant option意思是可以使用text_view5登录用户给其他用户授权,但是给其他用户授予的权限不能超过text_view5的权限,即我可以用text_view5用户登录mysql,然后使用授权命令给其他用户授权,如果不加with grant option是不可以给其他用户授权的,授权的时候会报错
flush privileges;
grant select on iterp.dept_info to text_view5@'%' with grant option; //给text_view5登录用户授予iterp数据库的dept_info表的select查询权限,且允许任何ip地址,允许远程访问。使用该用户连接登录mysql
flush privileges;
grant all privileges on *.* to text_view5@'%' with grant option;//给text_view5登录用户授予mysql所有库表的所有权限且允许任何ip地址通过text_view5登录mysql,允许远程访问
flush privileges;
权限效果
实际在idea代码中也是同样的效果
spring:
redis:
database: 1
host: 127.0.0.1
port: 6379
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/iterp?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true
username: text_view6
password: text_view6
# username: root
# password: root
#服务名
application:
name: backend
注:myview用的是dept_info对应的视图,即对视图操作和对dept_info操作同
删除用户
注意:关于@主机的如果值是localhost,则不能远程访问,只能本机访问
推荐博客
MySQL 8.x 创建用户并授权_mysql8创建用户并授权_拄杖忙学轻声码的博客-CSDN博客
MySQL创建用户与授权 (baidu.com)
Mysql8怎么创建用户及赋权-mysql教程-PHP中文网