MySQL数据库用户管理

目录

一.用户管理

1.新建用户

(1)明文创建

(2)密文创建

2.查看用户信息

3.重命名用户

4.删除用户

5.修改当前登录用户密码

6.修改其他用户密码

二.忘记root密码的解决方案

三.数据库用户授权

1.授予权限(grant)

2.查看权限

3.撤销权限


一.用户管理

1.新建用户

复制代码
格式:
create user '用户名'@'来源地址' [identified by [passwd] '密码'];
(1)明文创建
复制代码
#创建用户kk只允许从本机登录密码为123123
create user 'kk'@'localhost' identified by '123123';
 
#登录测试
mysql -u kk -p123123
(2)密文创建
复制代码
#获取密文
select password('123123');
 
#创建用户时密文复制粘贴过来
create user 'ww'@'localhost' identified by password '密文';
 
#登录验证
mysql -u ww -p123123

2.查看用户信息

复制代码
#切换库
use mysql;          
 
#查看user表中的用户信息:指定字段用户,登录认证字符串,登录主机,查看数据记录
select User,authentication_string,Host from user;  

3.重命名用户

复制代码
格式:
rename user '原用户名'@'登录主机' to '新用户名'@'登录主机';
 
示例:
#将用户kk重命名为kang
rename user 'kk'@'localhost' to 'kang'@'localhost';
 
#查看用户信息验证
use mysql;
select User,authentication_string,Host from user;

4.删除用户

复制代码
格式:
drop user '用户名'@'localhost';
 
示例:
#删除用户meng
drop user 'ww'@'localhost';
 
#验证查看
select User,authentication_string,Host from user;

5.修改当前登录用户密码

复制代码
#原密码为123456 修改为123123
set password = password('123123');

6.修改其他用户密码

复制代码
格式:
set password for '用户名'@'localhost' = password('新密码');
 
示例:
#修改用户zhuo密码由123123改为123456
set password for 'zhuo'@'localhost' = password('123456');

二.忘记root密码的解决方案

复制代码
1、#修改配置文件/etc/my.cnf,不使用密码直接登录到mysql。
vim /etc/my.cnf
----------------
[mysqld]
skip-grant-tables          #添加此行,使登录mysql不使用授权表
------------------
​systemctl restart mysqld   #重启服务
mysql    #直接登录
 ​​
2、#使用update命令修改root密码,刷新数据库。
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('123456') where user='root';
flush privileges;   #刷新数据库
quit                #退出
mysql -uroot -p123123     #免交互登录"-p密码"不能有空格
 ​
3、#删除配置文件中的配置,之后重启服务。
注意:最后再把/etc/my.conf 配置文件里的skip-grant-tables 删除,并重启mysql服务。
vim /etc/my.cnf
----------------
删除skip-grant-tables
-----------------------
systemctl restart mysqld    #重启服务

三.数据库用户授权

1.授予权限(grant)

格式:

grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];

复制代码
#使用root用户登入数据库
 mysql -u root- p123456
 
#授权*表示库下的所有表
grant select on test.* to 'kang'@'localhost' identified by '123456';
 
#退出数据库
quit 
 
#使用zhuo用户登入
mysql -u kang -p123456   
 
#查看所有库
show databases;
 
#切换库
use test;
 
#查看所有表
show tables;
复制代码
格式:
grant all on *.* to '用户名'@'%' identified by '用户密码';
 
示例:
grant all on *.* to 'kang'@'%' identified by '123456';

2.查看权限

复制代码
格式:
show grants for 用户名@来源地址;
 
示例:
show grants for 'kang'@'localhost';

3.撤销权限

复制代码
#撤销所有权限格式:
revoke all on *.* from '用户名'@'来源地址';
 
#撤销test库权限格式:
revoke select on test.* from '用户名'@'来源地址';
 
#示例:撤销用户kang的所有权限
#查看用户kang的权限
show grants for 'kang'@'localhost';
 
#撤销test库权限格式:
revoke select on test.* from 'kang'@'localhost';
 
#撤销用户kang所有主机登录的所有权限
revoke all on *.* from 'kang'@'%';
相关推荐
该用户已不存在5 小时前
MySQL 与 PostgreSQL,该怎么选?
数据库·mysql·postgresql
GoldenaArcher5 小时前
GraphQL 工程化篇 III:引入 Prisma 与数据库接入
数据库·后端·graphql
川石课堂软件测试5 小时前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
RestCloud5 小时前
StarRocks 数据分析加速:ETL 如何实现实时同步与高效查询
数据库
cgsthtm5 小时前
RuoYi.Net后端返回雪花ID前端精度丢失问题
oracle·vue·精度丢失·雪花id·ruoyi.net
lang201509286 小时前
MySQL数据类型存储全解析
mysql
野猪亨利6676 小时前
Qt day1
开发语言·数据库·qt
siriuuus6 小时前
Linux MySQL 多实例部署与配置实践
linux·运维·mysql
本就一无所有 何惧重新开始6 小时前
Redis技术应用
java·数据库·spring boot·redis·后端·缓存
isaki1376 小时前
qt day1
开发语言·数据库·qt