MySQL数据库创建用户并赋予数据库的操作和登录权限
前言
两种方法,第一种方法确保你的账号拥有全部权限,你安装数据库的时候默认的 root 用户就拥有全部权限。
第二张方法可以是你的账号不具备管理员权限,所以要直接操作 mysql 表,使用 insert 语句添加用户。
可以设置用户对某个数据库的某个表的增删改查权限,还能限制操作 IP
第一种方法
一、创建一个新用户 test ,密码设置为 123456
@’%’ 的意思是允许 test 用户在任意 IP 登录,如果是 @‘localhost’,意思就是只能在本机登录不能远程登录,如果是 @‘111.111.111.111’,意思是只能在 IP 为111.111.111.111 的设备上登录
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
二、赋予用户权限
赋予全部权限
all
代表全部权限(增删改查),*.*
代表全部的数据库的全部表,后面的@'%'
是在任何 IP 都可以拥有这些权限
grant all privileges on *.* to 'yj_gongdian'@'%';
赋予部分表的部分权限
下面这种写法自定义权限和表
我先创建个数据库 school,数据库里我又建了个表 students
create database school;
create table students;
这个意思是把 school 这个数据库下面的 students 表的 select 权限赋给 test 用户,而且限制 IP 为111.111.111.111
grant select on school.students to test@111.111.111.111;
三、刷新权限
必须刷新,不然不生效
flush privileges;
第二种方法
字段意思和上面的一样,意思是在 mysql 数据库里的 user 表,插入一条数据, mysql这个表是自带的,里面存储的都是用户的信息。
use mysql;
INSERT INTO user(host,user,password,select_priv,insert_priv,update_priv) VALUES('%','test',password('wulw2022!@#'),'y','y','y');
flush privileges;