Mysql数据库表管理和用户管理与授权

news2024/11/25 19:51:24

一、表结构管理

1. 修改表名

 ALTER TABLE 旧表名 RENAME 新表名

 2.扩展表结构(增加字段)

 ALTER TABLE 表名 ADD 字段名 数据类型;

 3.修改字段名,添加唯一健 change

 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 [数据类型] [约束];

4.删除字段drop

 ALTER TABLE 表名 DROP 字段名;

 5.复制表结构

1)方式一:创建新表,导入数据

 create table 新表名 like 旧表名;             #通过LIKE方法,复制旧表的结构生成新表
 
 insert into 新表名 select * from 旧表名;     #再将旧表数据导入新表

 2)复制表(直接复制表不能保证原有的表结构)

 create table 新表名 (select * from 旧表名);

 6.临时表创建

CREATE TEMPORARY TABLE 表名(字段1 数据类型,字段2 数据类型[, ...] [, PRIMARY KEY (主键名)]);

 创建方式与创建表完全一致,最大的区别是,临时表只在当前的数据库连接生效,当数据库连接断开或重新连接终端时,该临时表均失效,无法查看。

7.清除表的两种方式比较

方式一:delete清空  

 delete from 表名;

方式二:truncate清空

 truncate table 表名;    

两者区别:(1)delete清空属于按照行清空,一行一行进行,效率低,速度慢(对于表数据较多的情况) truncate相当于删除表数据,保留表结构,重新创建一个与原表结构相同的表 

(2)当数据表中有自增型约束字段时,delete清除表数据后,在插入数据时,自增字段的数值会接着被删除表数据的最后一个自增数,计数。(eg:被删除表数据最后一行id(自增),为10,再创建时,该id从11开始)。truncate清空后,自增型字段会从1开始计数
 

二、登录用户管理

1.查看用户密码信息

用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库)。

use mysql ;
show tables;

 经常使用的查看密码信息的命令:

能看到密码信息:是经过加密后的密码信息

select user,host,authentication_string from user;

 2.登录用户增加

明文密码创建用户格式:

create user  '用户名'@'主机' identified by  '密码'

加密密码创建用户 :

 SELECT PASSWORD('密码');    #先获取加密的密码
 ​
 CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '加密的密码';

 3.登录用户用户名更改

 RENAME USER '旧的用户名'@'旧的主机地址' TO '新的用户名'@'新的主机地址';

4.删除登录用户

drop user '用户名'@'登录地址';

 5.查看当前登录用户

select user();

6.修改用户密码

普通用户只有修改自身密码的权限

明文密码修改:

set password = password  ('新密码');

root用户是超级管理员,它不仅可以修改自身密码,还能修改其他用户的密码。

set password for  '用户'@'登录地址' =password ('密码');

 7.root密码的忘记后的修改找回方法

 该操作必须是在数据库本机且为root用户,才可进行

1)第一步:添加跳过的初始配置

vim  /etc/my.cnf
 
skip-grant-tables

2) 第二步:重启数据库服务 ,修改数据库用户表中root密码

systemctl restart mysql.service
mysql
mysql> UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('123123') where user='root';
 mysql> flush privileges;   #刷新数据库
 ​
 mysql> quit                #退出

 3)第三步:登录测试新密码 

mysql -u root -p123123

4)第四步:撤销添加的免密码认证设置,重启数据库服务 

#删除配置文件中的配置,之后重启服务。
 注意:最后再把/etc/my.conf 配置文件里的skip-grant-tables 删除,并重启mysql服务。
 vim /etc/my.cnf
systemctl restart mysqld.service 

 三、管理用户登录权限

常见的用户权限

权限   权限说明   权限级别
CREATE    创建数据库、表或索引的权限    数据库、表或索引
DROP   删除数据库或表的权限    数据库或表
GRANT OPTION      赋予权限选项 数据库或表
REFERENCES   引用权限    数据库或表
ALTER    更改表的权限   数据表
DELETE     删除表数据的权限  数据表
INDEX     操作索引的权限   数据表
INSERT    添加表数据的权限   数据表
SELECT   查询表数据的权限   数据表
UPDATE   更新表数据的权限   数据表
CREATE VIEW      创建视图的权限 视图
SHOW VIEW      查看视图的权限 视图
ALTER ROUTINE    更改存储过程的权限   存储过程
CREATE ROUTINE   创建存储过程的权限    存储过程
EXECUTE    执行存储过程权限   存储过程
FILE     服务器主机文件的访问权限  文件管理
CREATE TEMPORARY TABLES      创建临时表的权限 服务器管理
LOCK TABLES   锁表的权限   服务器管理
CREATE USER     创建用户的权限 服务器管理
RELOAD       执行 flush privileges, refresh, reload 等刷新命令的权限服务器管理
PROCESS       查看进程的权限 服务器管理
REPLICATION CLIENT      查看主从服务器状态的权限  服务器管理
REPLICATION SLAVE      主从复制的权限 服务器管理
SHOW DATABASES    查看数据库的权限   服务器管理
SHOW DATABASES    查看数据库的权限   服务器管理
SUPER    超级权限    服务器管理
ALL [PRIVILEGES]    所有权限
USAGE       没有任何权限   

1.查看用户已有的权限

 SHOW GRANTS;     #查看当前用户(自己)的权限
 ​

 SHOW GRANTS FOR 用户名@来源地址;    #查看其他用户的权限

 2.授权操作

1) 对存在用户进行授权

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

权限列表:  用于列出授权使用的各种数据库操作,以逗号进行分隔如"select, insert,update"。 使用"all"表示所有权限(实际上部分权限仍无法使用,只包括大部分权限),可授权执行任何操作。

 ​  数据库名.表名:  用于指定授权操作的数据库和表的名称,其中可以使用通配符*。 例如,使用"mysql.*" 表示授权操作的对象为mysql数据库中的所有表。  ​  '用户名'@'来源地址':  用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。 来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。

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

 2)对不存在的用户进行创建并授权 

 GRANT ALL PRIVILEGES ON *.* TO  '用户名'@'来源地址' IDENTIFIED BY '密码';

 3.撤销用户权限

 revoke 权限列表/ALL on 库名.表名 from '用户名'@'来源地址';

四、总结

1.用户管理操作

 create user 'username'@'address' identified by 'password';   #创建用户  ​

 select user,host,authentication_string from mysql.user;   #查看用户信息  ​

 rename user old_user to new_user;        #修改用户名  ​

 drop user '用户名'@'来源地址';            #删除用户  ​  

set password = password('XXXX');         #修改当前登录用户的密码  ​

 set password for '用户名'@'来源地址' = password('XXXX');     #修改其他用户的密码  ​

 select user ();      #查看当前登录用户和来源地址  ​

 ###忘记root用户密码的解决方法:  

修改mysql配置文件/etc/my.cnf,在 [mysqld] 配置项下加入 skip-grant-tables

service mysqld restart   #重启服务

 mysql   #免密登陆  

 update mysql.user set authentication_string=password('新密码') where user='root';  

#修改密码 flush privileges; #刷新数据库

2.用户授权操作 

grant 权限列表/ALL ON 库名.表名 to 'username'@'address' identified by '密码';  ​   #授予用户权限  

show grants;     #查看当前用户(自己)的权限                

show grants for 'username'@'address';      #查看其他用户的权限  ​

 revoke 权限列表/ALL on 库名.表名 from 'username'@'address';   #撤销用户的权限  ​  

mysql -u 用户名 -p[密码] -h 目标IP/主机名 -P 端口号             #远程连接mysql
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 多路转接 —— select

目录 传统艺能😎select😍fd_set 结构😒timeval 结构🤣 socket 就绪条件😁读条件🤣写就绪😍异常就绪😒 select 工作流程😘select 服务器实现😂socket 类&#…

极致呈现系列之:Echarts饼图的千变万化

目录 创建一个最简单的饼图美化饼图修改颜色修改饼图的边框线条样式修改饼图的标签样式添加饼图的阴影效果添加修改饼图的图例样式 添加交互饼图的变化环形图动画装饰仪表盘 创建一个最简单的饼图 这个没什么好说的,懂的都懂,直接上代码 //安装 Echart…

LlamaIndex 简介:LLM 应用程序的数据框架

LlamaIndex 是一个非凡的工具,创建为一个全面的“数据框架”,以促进 LLM(大型语言模型)应用程序的开发。该框架与 ChatGPT 集成,充当大型语言模型和用户私人数据之间的桥梁。 借助 LlamaIndex,用户可以轻松…

Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存

背景 在使用Zeppelin JDBC Intercepter 对于Hive 数据进行查询过程中,如果遇到非常复杂的sql,查询效率是非常慢 比如: select dt,count(*) from table group by dt做过数据开发的同学都知道,在hive sql查询过程中,hive…

MySQL - 第1节 - MySQL数据库基础

1.数据库的概念 数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 虽然单纯的使用文件也可以存储数据,但会存在如下缺点: • 安全性问题:数据误操…

深搜-选数类问题

目录 1.问题引入 2.知识讲解 3.例题解析 【例题1】全排列。 【例题2】素数环Ⅱ。 【样例3】素数分解。 1.问题引入 上一节探讨了迷宫类问题,和平时遇到的迷宫小游戏类似,可以使用搜索程序求得迷宫的路径和最短路。本小节继续研究深搜的另一类问…

MySQL数据库的认识及基础命令操作

目录 一、数据库的基本概念 1、数据库定义 (1) 数据 (2)表 (3) 数据库 2、 数据库管理系统(DBMS) 3、 数据库系统(DBS) 二、数据库系统发展史 1、 第一…

【RabbitMQ教程】第五章 —— RabbitMQ - 死信队列

💧 【 R a b b i t M Q 教程】第五章—— R a b b i t M Q − 死信队列 \color{#FF1493}{【RabbitMQ教程】第五章 —— RabbitMQ - 死信队列} 【RabbitMQ教程】第五章——RabbitMQ−死信队列💧 🌷 仰望天空,妳我亦是行人…

SpringCloud:分布式事务Seata

1.什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属…

【Flutter】Flutter 创建每个页面公用的底部框

文章目录 一、 前言二、 创建公用底部框的步骤1. 创建一个公用的底部框 Widget2. 在页面中使用公用的底部框 Widget 三、 示例:电商应用中的公用底部框1. 创建电商应用的底部框 Widget2. 在电商应用的各个页面中使用底部框 Widget 四、 完整代码示例五、 一些注意事…

第一次ubuntu wsl ssh远程登录各种报错+解决

第一次ubuntu wsl ssh远程登录各种报错+解决 最新推荐文章于 2023-04-13 20:23:43 发布 kh3064 于 2020-11-03 15:12:16 发布 1869 收藏 5 文章标签: ubuntu

计算理论导引实验三:构造图灵机

计算理论导引实验三:构造图灵机 实验描述形式化定义图灵机M的状态图 算法设计与描述状态转移关系类键盘输入及逻辑处理类 编码实现测试运行 实验描述 要求构造一个能够识别语言L的图灵机。语言L的描述和实验内容如下图所示 形式化定义 根据实验描述,可…

【批量修改后缀名】如何批量去修改文件后缀名(亲测图文结合)

【写在前面】前段时间,因为素材需要,就去之前我制作相册的一个网站上下载了一批照片,但是照片下载下来的格式居然是.png!600*0,这种格式的也打不开,于是乎我自己就吭哧吭哧的去一个个的修改,然后我一想他娘…

EBU5476 Microprocessor System Design 知识点总结_5 GPIO

GPIO General Purpose Input Output, Memory-Mapped IO 把设备,控制等寄存器映射到内存里。好处就是访问设备方式和内存一样,也不用设计复杂的IO电路,便捷;缺点在于占用了内存空间。 Peripheral-Mapped IO IO有一块专门的存储…

Vue|单文件组件与脚手架安装

一、单文件组件1.1 介绍1.2 文件组成1.3 加深认知 二、脚手架安装2.1 什么是脚手架?2.2 使用镜像2.3 全局安装vue/cli2.4 创建并启动项目 一、单文件组件 1.1 介绍 [.vue]文件,称为单文件组件,是Vue.js自定义的一种文件格式,一个.vue文件就…

AST使用(二)

//在此之前,先了解下path和node/*path指的是路径 其常用的方法当前路径所对应的源代码 : path.toString判断path是什么type,使用path.isXXX 这个方法 : if(path.isStringLiteral()){}获取path的上一级路径 : let parent path.parentPath;获取path的子…

nginx的安装及代理和负载均衡设置

一、通过yum方式进行安装 官网参考地址:https://nginx.org/en/linux_packages.html#RHEL 1.1 安装好依赖 执行下面的命令安装 sudo yum install yum-utils1.2、 先配置好yum源 新建文件/etc/yum.repos.d/nginx.repo,文件内容: [nginx-s…

一个成熟的软件测试工程师应该具备那些“技能”

1、良好的沟通 相信大家都在网上看到过各种吐槽程序员不解风情的段子,开怀大笑之余深思,作为一个测试工程师又何尝不是如此?通常沟通技能成为横亘在测试工程师与其他合作部门之间的万丈鸿沟,也成为测试工程师成长的最大瓶颈。下面…

Vector-常用CAN工具 - 以太网报文收发方向

目录 Rx 和 Tx 标记 Example:从 CANoe 向 ECU 发送以太网数据包 用例 2:从 ECU 接收以太网数据包 如何仅显示物理或虚拟通信 如何仅显示 Rx 或 Tx 以太网数据包 VN5000以太网包过滤 1、什么是硬件过滤? 2、什么时候使用硬件过滤&…

useEffect,useLayoutEffect的基础知识和底层机制

useEffect 是 React 中一个重要的 Hook,用来处理组件的副作用操作。它的基础知识包括两个方面:执行时机和参数。 执行时机: useEff ect 的执行时机包括两种情况: 组件挂载时,即第一次渲染之后。组件更新时&#xff…