mysql用户

news/2024/7/7 18:42:01/文章来源:https://www.cnblogs.com/hxqwe/p/18278396

一、数据库用户管理

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

1.新建用户

create user '用户名'@'源地址'   identified by '密码';'用户名'
指定将创建的用户名'来源地址'
指定新创建的用户可在哪些主机上登录
可使用IP地址、网段、主机名的形式
本地用户可用localhost
允许任意主机登录可用通配符%'密码'
若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用select password('密码'); 获取密文,再在语句中添加 password '密文';若省略“identified by”部分,则用户的密码将为空(不建议使用)
create user 'user1'@'localhost' identified by '123456';select password('abc123');create user 'user2'@'localhost' identified by PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

2.查看用户信息

#创建后的用户保存在 mysql 数据库的 user 表里
use mysql;
select user,authentication_string,Host from user;
#authentication_string在mariadb中为password

#查看当前登录用户
select user();

3.重命名用户

rename user 'hx'@'192.168.100.%' to 'hx'@'192.168.%.%'

4.删除用户

drop user 'lisi'@'localhost';

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

#修改当前用户的密码
set password = password('abc123'); 
#修改其他用户密码
set password for '用户' = password('abc'123);

在MariaDB 10.4及更高版本中,默认情况下使用了 validate_password 插件来强制密码策略,包括密码长度和复杂性要求。如果想使用简单密码(如只有数字或字母),需要修改相应的全局变量来放宽密码策略要求。

set global validate_password_policy=0;
set global validate_password_length=1;
#修改密码策略

7.忘记 root 密码的解决办法

1)修改 mysql配置文件/etc/my.cnf ,不使用密码直接登录到 mysql

vim /etc/my.cnf[mysqld]
skip-grant-tables                    #添加,使登录mysql不使用授权表systemctl restart mysqldmysql                                #直接登录

2)使用 update 修改 root 密码,刷新数据库

use mysql;update `user` set `Password`=password('123') where user='root';

FLUSH PRIVILEGES;
quitmysql -u root -pabc123#注意:最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。

二、数据库用户授权

1.授予权限

grant语句:专门用来设置数据库用户的访问权限
当指定的用户名不存在时,grant语句将会创建新的用户
当指定的用户名存在时, grant 语句用于修改用户信息

grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [indentified by '密码'];#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“kgc.*”表示授权操作的对象为 kgc数据库中的所有表。
#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。
#来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.byyb.com”、“192.168.80.%”等。
#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。
#允许用户 zhangsan 在本地查询 hx 数据库中 所有表的数据记录,但禁止查询其他数据库中的表的记录。
grant select ON hx.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123';#允许用户 lisi 在所有终端远程连接 mysql ,并拥有所有权限。
GRANT ALL [PRIVILEGES] ON *.* TO 'lisi'@'%' IDENTIFIED BY '123';flush privileges;
quitmysql -u zhangsan -p123;
use hx;
show tables;
select * from tb1;

2.查看权限

show grants for 用户名@来源地址;#举个例子
show grants for root;

3.撤销权限

revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
#举个例子
#移除用户所有权限
revoke all on *.* from 'hx'@'192.168.100.%';
show grants for'hx'@'192.168.100.%';
#USAGE权限只能用于数据库登陆,不能执行任何操作;
#USAGE权限不能被回收,即 REVOKE 不能删除用户.

flush privileges;

三、命令总结

use 库名;
show tables;      show tables from 库名;
desc [库名.]表名;create database 库名;
use 库名;
create table [库名.]表名 (字段1 数据类型, 字段2 数据类型, ....[, primary key (字段)]);drop table [库名.]表名;
drop database 库名;修改表结构
改表名    alter table 旧表名 rename 新表名
增加字段  alter table 表名 add 新字段 数据类型 [字段属性];
修改字段  alter table 表名 change 旧字段 新字段 数据类型 [字段属性];
删除字段  alter table 表名 drop 字段;DML:用于管理表数据
insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...);
insert into 表名 values (字段1的值, 字段2的值, ...);                      #要按照表结构的字段顺序设置值update 表名 set 字段1=值, ... where 条件表达式;delete from 表名 where 条件表达式;DQL:用于根据条件查询表数据
select * from 表名 [where 条件表达式];
select 字段1,字段2,... from 表名 [where 条件表达式];select * from 表名\G      #纵向查看每行记录字段的值select * from 表名 limit N;      #查看表的前N行记录
select * from 表名 limit N,M;    #查看表的前N行之后的连续M行记录(不包含第N行)MySQL 的约束特性:
primary key      主键约束    字段的值不能重复,且不能为null,一个自建的表只能有一个主键
unique key       唯一性约束  字段的值不能重复,能为null,一个表可以有多个唯一键
not null         非空约束    字段的值不能为null
default          默认值约束  字段的值如果没有设置则使用默认值自动填充
auto_increment   自增约束    字段的值如果没有设置默认会从1开始每次自动递增1,要求自增字段必须设置主键
foreign key      外键约束    保证相关联的表数据的完整性和一致性int(N) zerofill  零填充克隆表
create table 新表 like 旧表;                    #克隆表结构
insert into 新表 (select * from 旧表);          #克隆表数据        可实现表结构和表数据与旧表都一样create table 新表 (select * from 旧表);         表数据与旧表一样,表结构与旧表可能不一样清空表
delete from 表名;        一条一条的删除记录,效率较慢;自增字段仍然会按照清空前的最大记录继续自增truncate table 表名;     直接重建表,清空表效率更快;自增字段会重新从1开始自增临时表
create temporary table 表名 (....);   临时表可以跟普通的表一样增删改查表中的数据,但是show tables是查看不到的,临时表只能在当前会话中有效,在其它会话中或者退出当前会话连接,临时都会失效外键约束
主键表: alter table 表名 add primary key (主键字段);
外键表: alter table 表名 add foreign key (外键字段) references 主键表名 (主键字段);插入新数据时,需要先在主键表插入数据再在外键表插入对应数据;删除数据时,需要先在外键表删除数据再在主键表删除对应数据DCL:用于管理用户与权限
用户管理
select user();        查看当前登录的用户create user '用户名'@'源地址'   identified by '密码';localhost/IP/网段/主机名/%rename user '旧用户名'@'源地址' to '新用户名'@'源地址';drop user '用户名'@'源地址';select user,host,authentication_string from mysql.user;                      set password = password('密码');
set password for '用户名'@'源地址' = password('密码');
alter user '用户名'@'源地址' identified by '密码';找回 root 密码?
1)修改mysql配置文件,在 [mysqld] 下面添加 skip-grant-tables 配置项
2)重启mysqld服务,使用 mysql 密码直接登录 mysql
3)执行 update user set authentication_string=password('密码') where user='root'; 命令修改 root 用户的密码
4)还原mysql配置文件,重启mysqld服务,使用 mysql -u 用户名 -p密码 [-h mysql地址 -P mysql端口] 命令来验证登录权限管理
grant 权限1,权限2,....  on 库名.表名   to  '用户名'@'源地址'  [identified by '密码'];     #5.7版本支持创建用户和权限授权,8.0版本只能用于权限授权all                     *.*show grants for '用户名'@'源地址';revoke 权限1,权限2,....  on 库名.表名  from  '用户名'@'源地址';all

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/735858.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可视化

D3.js绘制柱形图 <!DOCTYPE html><html lang="en"><head><title>bar example</title><script src="d3.min.js"></script></head><body><div id="barchart"></div><script…

【0基础学爬虫】爬虫基础之scrapy的使用

【0基础学爬虫】爬虫基础之scrapy的使用大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速…

springboot使用itextpdf+jfreechart制作PDF文档

1. springboot引入的依赖组件 项目中需要引入itextpdf和jfreechart两个组件,版本根据项目所需进行引入,maven组件版本查询可根据如下地址进行查询:maven组件查询<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId&g…

spring趣玩

自定义banner 先上图片,替换spring启动标志;或者也可以在启动类代码设置Banner也可以通过设置springApplication.setBannerMode(Banner.Mode.OFF);关闭打印横幅ApplicationRunner和@PostConstruct ApplicationRunner 是一种灵活的机制,可以用来执行数据库迁移、预加载数据、…

图论初步与可视化

本讲将简要介绍图论中的基本概念,并主要讲解图论中的最短路径问题。以及如何将图论可视化 目录一、图论的概念二、在线作图网站1.index介绍2.Node Count介绍3.Graph data三、Matlab作无向图1.无权图(每条边的权重默认为1)2.利用字符串做无权图3.有权图四、Matlab作有向图 一…

使用不同函数打印torch.nn模型——print(model),named_children(),named_modules():

创建一个具有三级嵌套的模型,结构如图:import torch import torch.nn as nn# 定义子子模块 class SubSubModule(nn.Module):def __init__(self):super(SubSubModule, self).__init__()self.conv = nn.Conv2d(3, 3, kernel_size=3, padding=1)def forward(self, x):return sel…

[LeetCode] 189. Rotate Array

无敌的切片他又来了。 class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""#0if k ==0:pass#elselenn = len(nums)k = k % lennnums[:] =nums[lenn -k:] + nums…

Centos双网卡冗余绑定

1. 前言 关于双网卡绑定,前前后后踩过不少的坑,虽然这是 RHCE 中的一道题,但是在实践中碰到问题也够喝一壶的。 在实践中,虚拟机、物理机都做过,但是不尽相同,大部分的坑也集中在这里,本文长期更新关于网卡绑定中遇到的问题及处理方法。 现在的服务器默认都配备 4 张 千…

Java 将Markdown文件转换为Word和PDF文档

Markdown 凭借其简洁易用的特性,成为创建和编辑纯文本文档的常用选择。但某些时候我们需要更加精致的展示效果,例如在专业分享文档或打印成离线使用的纸质版时,就需要将Markdown文件以其他固定的文档格式呈现。通过将 Markdown 转换为 Word 和 PDF 格式,可以得到更多的格式…

k8s-09-Deployment

Deployment微服务化:将一个大规模系统拆分成各个独立运行的组件更新 pod:直接删除所有现有的 pod, 然后创建新的 pod。 先创建新的 pod, 并等待它们成功运行之后, 再删除旧的 pod。 按顺序创建新的 pod, 然后逐渐删除旧的 pod。第 1 种会导致应用程序在一定的时间内不可用。…

IOT2050基本使用和指令集

安装系统镜像 -- debianIOT镜像地址下载及镜像版本说明Win32 disk Imager下载,用于SD卡安装镜像文件使用win32磁盘映像工具镜像操作如下:如果需要把SD卡中的镜像写入到eMMC卡:将烧录好的SD卡插入设备,修改SD卡启动顺序为默认启动设备。 如果已经存在emmc系统,则先格式化em…

K8S学习教程(一):使用PetaExpress云服务器安装Minikube 集群

什么是MinikubeMinikube是一款工具,主要用于在本地运行 Kubernetes 集群。Kubernetes 开源的平台,用于自动化容器化应用的部署、扩展和管理,而Minikube 使得开发人员能够在本地机器上轻松创建一个单节点的 Kubernetes 集群,从而方便开发、测试和学习 Kubernetes。我们看下如…

蓝牙芯片认证

前言: BLE产品工作在2.4G频段。产品具有蓝牙功能并且在产品外观上标明蓝牙标志,则必须通过认证。 各个国家的认证标准不同,但是大同小异。例如FCC/MIC/CE/BQB等。具体需要过某个认证可以查看出口国家。 认证可以分为传导和空气耦合。传导是测试芯片发射信号的波形;耦合是测…

Linux下二进制可执行文件分析 (nm,readelf,objdump 命令使用)

最近在调试一些问题,发现几个命令很实用,记录一下。 一 背景也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可…

hypernetwork在SD中是怎么工作的

大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢?大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢? 简单点说,hypernetwork模型是用于修改样式的小型神经网络。 什么是…

使用 ROS2的多机器人探索

原文链接:https://www.youtube.com/watch?v=J0RZP_xJ3XA This video shows a demonstration of the SOS project, dedicated to forest fire detection using a fleet of robots. Several important issues are addressed. 这段视频展示了SOS项目的演示,该项目致力于使用机…

企业生产环境Nacos集群部署示例

Nacos运行环境需要jdk环境,集群各节点服务器需安装jdk1.8: jdk-8u341-linux-x64.tar 第一步:上次安装包 第二步:解压 sudo tar -zxvf jdk-8u341-linux-x64.tar.gz 第三步: 配置环境变量sudo vim /etc/profile 第四步:添加以下内容 export JAVA_HOME=/usr/local/jdk1.8.0…

Identity-aware Graph Neural Networks

目录概ID-GNNYou J., Gomoes-Selman J., Ying R. and Leskovec J. Identity-aware graph neural networks. AAAI, 2021.概 提出了一种能够超越 1-WL-Test 的 GNN. ID-GNNID-GNN 的 motivation 主要如下:主要到, 传统的 MPNN, 即第 \(k\) 层: \[\mathbf{m}_u^{(k)} = \text{MSG}…

AMM论文阅读笔记

AMM: Attentive Multi-field Matching for News Recommendation论文阅读笔记 Abstract 现存的问题: ​ 个性化新闻推荐是帮助用户找到感兴趣新闻的关键技术,而如何精确匹配用户兴趣和候选新闻是新闻推荐的核心。现有研究一般通过聚合用户浏览过的新闻来学习用户的兴趣向量,…