mySQL数据库用户管理

目录

1.创建外键约束

外键的定义

主键表和外键表的理解

具体操作

2.数据库用户管理

新建用户

查看用户信息

重命名用户

删除用户

修改当前和其他用户登录密码

忘记 root密码的解决办法

3.数据库用户授权

授予权限

查看权限 

撤销权限


1.创建外键约束

外键的定义

  • 如果同一个属性字段X在表一中是主键,而在表二中不是主键,则字段X称为表二的外键。

主键表和外键表的理解

  • 以公共关键字作主键的表为主键表(父表、主表)
  • 以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

具体操作

#创建主表 subject
create table subject (pid int(4),proname varchar(50));

#创建从表 student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3),proid int(4));

#为主表 subject 添加一个主键约束。主键名建议以“PK_”开头。
alter table subject add constraint PK_pid primary key (pid);

#为从表 student 表添加外键,并将 student 表的 proid 字段和 subject 表的 pid 字段建立外键关联。外键名建议以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references subject (pid);

desc student;

#插入新的数据记录时,要先主表再从表
insert into subject values(1,'语文');
insert into subject values(2,'数学');
insert into student values(1,'zhangsan',18,1);
insert into student values(2,'lisi',19,1);
insert into student values(3,'wangwu',20,2);

#删数数据记录时,要先从表再主表,也就是说删除主键表的记录时必须先删除其他与之关联的表中的记录。
delete from student where proid=1;
delete from subject where pid=1;

#查看和删除外键约束
show create table student;
desc student;
alter table student drop foreign key FK_pro;
alter table student drop key FK_pro;

2.数据库用户管理

新建用户

create user '用户名'@'来源地址' [identified by [PASSWORD] '密码'];

用户名:指定将创建的用户名

来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%

密码: 若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;
      若使用加密密码,需要先使用SELECT PASSWORD('密码'); 获取密文,再在语句中添加 PASSWORD '密文';
      若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

查看用户信息

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

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

#登录用户
mysql -u用户名 -p密码 -hIP地址 -P(大)指定端口3306

重命名用户

RENAME USER 'lisi'@'localhost' TO 'ybc'@'localhost';
#大写!

删除用户

DROP USER 'yy'@'yy';

修改当前和其他用户登录密码

SET PASSWORD = PASSWORD('abc123');   
#修改当前登录用户密码

SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123');
#修改其他用户密码

忘记 root密码的解决办法

1.修改 /etc/my.cnf vim /etc/my.cnf
[mysqld]
skip-grant-tables					#添加,使登录mysql不使用授权表

systemctl restart mysqld
mysql								#直接登录配置文件,不使用密码直接登录到 mysql

2.使用 update 修改 root 密码,刷新数据库
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';

FLUSH PRIVILEGES;
quit

mysql -u root -pabc123

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

  • 3.数据库用户授权

授予权限

#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“kgc.*”表示授权操作的对象为 kgc数据库中的所有表。

#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.kgc.com”、“192.168.80.%”等。

#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。

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

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

#允许用户ybc在本地查询ybc数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。
GRANT select ON ybc.* TO 'ybc'@'192.168.88.%' IDENTIFIED BY 'abc123';

#允许用户 lisi 在所有终端远程连接 mysql ,并拥有所有权限。
GRANT ALL [PRIVILEGES] ON *.* TO 'lisi'@'%' IDENTIFIED BY '123';

查看权限 

SHOW GRANTS FOR 用户名@来源地址;

例:
SHOW GRANTS FOR 'lisi'@'%';

撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

例:
REVOKE ALL ON *.* FROM 'lisi'@'%';

SHOW GRANTS FOR 'lisi'@'%';
#USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

又是阿里,通义灵码免费平替GitHub Copilot

毫无疑问,人工智能已经在影响着我们日常生活的方方面面,同样的在软件开发领域,AI正在改变我们的开发方式。在软件开发领域,尽管有许多强大的AI编码工具,但国产,免费,使用门槛低,用起…

Fastjson 常用语法

一.Json数据格式回顾 1.1 什么是json JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSO…

省时攻略:快速获得Creo安装包,释放创意天才!

不要再在网上浪费时间寻找Creo的安装包了,一键下载安装, 你要的一切都可以在这里找到!我们深知在海量的信息中寻找合适的软件包并非易事,而且往往还伴随着繁琐的安装过程。然而,现在有了我们,一切变得轻松简…

常见激活函数

激活函数是神经网络中的一种非线性变换,它在神经元的输出上引入了非线性性质,使神经网络能够更好地学习和适应复杂的数据模式。以下是一些常见的激活函数: Sigmoid 函数 Sigmoid 函数将输入映射到(0,1)之间…

模块与包、反序列化校验源码分析、断言、drf之请求、drf之响应

模块与包 什么是模块? 一个py文件,被别的py文件导入使用,它就是模块 如果py文件,直接右键运行,它叫脚本文件 什么是包? 一个文件夹,下有 __init__.py ,和很多py文件,这个…

Ubuntu 常用命令之 scp 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 SCP(Secure Copy)是一种基于SSH(Secure Shell)的文件传输协议,它可以在本地和远程主机之间安全地复制文件。在Ubuntu系统下,我们可以使用scp命令来实现这个功…

tcp 的限制 (TCP_WRAPPERS)

#江南的江 #每日鸡汤:青春是打开了就合不上的书,人生是踏上了就回不了头的路,爱情是扔出了就收不回的赌注。 #初心和目标:拿到高级网络工程师 TCP_WRAPPERs Tcp_wrappers 对于七层模型中是位于第四层的安全工具,他…

零成本搭建一款博客网站(基于Vercel+Hexo完美实现)【保姆级教程】

文章目录 🐸基于VercelHexo零成本搭建博客网站🐻实现思路 🐮Hexo的配置与安装🐒Hexo的美化与使用🐫Github的推送与部署🐼Vercel部署与网站上线🐛总结 🐸基于VercelHexo零成本搭建博客…

冬至·特辑:Note4---二叉树的链式结构

目录 前言🧶 1. 二叉树链式结构的实现🐧 1.1 要实现的目标🎯 2.二叉树的创建🌹 2.1代码实现 2.1.1 TreeNode.h 2.1.2 TreeNode.c 3.实现二叉树的遍历🐲 3.1 思路分析🐤 3.2 前/中/后序遍历&#…

IDEA 中 Tomcat 日志乱码

1、服务器输出乱码 修改 File -> settings -> Editor -> General ->Console 中,utf-8改为GBK,反之改成utf-8 2、Tomcat Localhost Log 或者 Tomcat Catalina Log乱码 进入Tomcat 中的conf文件中的logging.properties 哪个有问题改哪个&…

1223西站坐标更新

1223 西站坐标更新 1.Update for the station’s location def initial_out_map_indoor_points(self):Load the indoor data and update both the wall_matrix and the ditch_matrix.# Initialize the wall_matrix# List of coordinatescoordinates [(417, 287, 417, 290),(4…

Java--抽象工厂设计模式

抽象工厂设计模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责…

考研往应届考生报名流程?

文章目录: 一:考试时间相关 二:公告查询获取信息 三:提供材料 1.基本要求 2.证件要求 四:相关问题 1.报名流程如何操作 2.考点选择 2.1 应届考生考点选择 2.2 往届考生考点选择 3.预报名时间可能不同 4.档…

Python编程 圣诞树教程 (附代码)专属于程序员的浪漫

文章目录 1.turtle库2.python函数的定义规则3.引入库4.定义画彩灯函数5.定义画圣诞树的函数6.定义树下面小装饰的函数7.定义一个画雪花的函数8.画五角星9.写文字10.全部源代码11.html圣诞树代码实现(动态音乐) 1.turtle库 turtle库是Python语言中一个很…

Java LocalDateTime转Json报错处理

在项目中LocalDateTime 进行json转换时,抛出序列化异常,查找解决方案,记录下来,方便备查。 报错信息 Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type java.time.LocalDateT…

【小白攻略】php 小数转为百分比,保留两位小数的函数

php 小数转为百分比 首先,最简单直观的方法是利用PHP内置的number_format函数。该函数可以对一个数字进行格式化,并可以设置小数点后的精度。通过将小数乘以100,再用number_format函数将结果格式化为百分比形式,即可达到将小数转为…

基于Java SSM框架实现多人试卷批改考试命题系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现多人试卷批改考试命题系统演示 摘要 多人命题系统是高校为教师、学生试卷的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。我所在学院多采用半手工管理学生试卷…

什么是动态代理?

目录 一、为什么需要代理? 二、代理长什么样? 三、Java通过什么来保证代理的样子? 四、动态代理实现案例 五、动态代理在SpringBoot中的应用 导入依赖 数据库表设计 OperateLogEntity实体类 OperateLog枚举 RecordLog注解 上下文相…

车云TCP链路偶现链接失联问题排查

一、问题分析 1.1 车云tcp长连接分析排查 在15:37:32.039上线, 在 16:07:26.527下线,车云长连接通道稳定,且该期间心跳数据正常。 1.2 云向驾仓推送数据分析 在15:37:42 进行车辆接管后,该车辆下线,且无法在上线&am…

Java语法---使用sort进行排序

目录 一、升序 二、降序 (1)类实现接口 (2)匿名内部类 三、自定义排序规则 四、集合中的sort排序 (1)升序 (2)降序 (3)自定义排序 一、升序 升序排…