mysql用户管理知识点

news2025/1/21 0:59:00

1、权限表

        1.1、user表

                1.1.1、用户列

                        Host、User、Password分别表示主机名、用户名、密码

                1.1.2、权限列

                        决定了用户的权限,描述了在全局范围内允许对数据和数据库进行操作。

                1.1.3、安全列

                        安全列有6个字段,其中两个是ssl相关的,2个是x509相关的,另外2个是授权插件相关的。

                        ssl用于加密,x509标准用于标识用户,plugin字段标识可以用于验证用户身份的插件。

                1.1.4、资源控制列

                        用来限制用户使用的资源,包含4个字段,分别为:

                                1)、max_questions:用户每小时允许执行的查询操作次数。

                                2)、max_updates:用户每小时允许执行的更新操作次数。

                                3)、max_connections:用户每小时允许执行的连接操作次数。

                                4)、max_user_connections:用户允许同时建立的连接次数。

        1.2、db表和host表

                此两个表针对的是数据库。

                1.2.1、用户列

                        db表:Host、User、Db

                        host表:Host、Db

                1.2.2、权限列

        1.3、tables_priv表和cloumns_priv表

                tables_priv表用来对表设置权限;cloumns_priv表用来对表的某一列设置权限。

                tables_priv表有8个字段,各字段说明如下:

                1)、Host、Db、User、Table_name:主机名、数据库名、用户名、表名

                2)、Grantor:表示修改该记录的用户。

                3)、Timestamp:表示修改该记录的时间。

                4)、Table_priv:表示对表的操作权限包括Select、Insert、Update、Delete、Create、Drop、Grant、References、Index和Alter

                5)、Cloumn_priv:表示对表中的列的操作权限,包括Select、Insert、Update、References。

                        cloumns_priv表只有7个字段,Host、Db、User、Table_name、Cloumn_name、Timestamp、Cloumn_priv。

                        Cloumn_name表示指定对哪些数据列具有操作权限。

        1.4、procs_priv表

                procs_priv表可以对存储过程和存储函数来设置操作权限。

                procs_priv表有8个字段,各字段说明如下:

                1)、Host、Db、User:主机名、数据库名、用户名

                2)、Routime_name:表示存储过程或函数的名称。

                3)、Routine_type:表示存储过程或函数的类型。有两个值,分别是:FUNCTION和PROCEDURE。

                4)、Grantor:表示插入或修改该记录的用户。

                5)、Proc_priv:表示拥有的权限,包括Execute、Alter Routine、Grant 3种。

                6)、Timestamp:表示修改该记录的时间。

2、账户管理

        2.1、登陆和退出MYSQL服务器

                通过mysql -help命令查看mysql命令帮助信息,mysql的命令常用参数如下:

                1)、-h 主机名,可以使用该参数指定主机名或IP,如果不指定,则默认为localhost。

                2)、-u 用户名,可以使用该参数指定用户名。

                3)、-p 密码,可以使用该参数指定密码。注意:该参数后面的字符串h和-p之间不能有空格。

                4)、-P 端口号,该参数后面接MYSQL服务器端口号,默认为3306.

                5)、数据库名,可以在命令的最后指定数据库名。

                6)、-e 执行sql语句。

        2.2、新建普通用户

                2.2.1、使用CREATE USER 语句创建新用户

CREATE USER user_specification [,user_specification]...

user_specification:

'user'@'host'

[

IDENTIFIED BY [PASSWORD] 'password' | IDENTIFINED WITH auth_plugin [AS 'auth_string']

]

                        user:表示创建的用户的名称。

                        host:表示允许登陆的用户主机名称。

                        IDENTIFIED BY:表示用来设置用户的密码;

                        [PASSWORD]:表示使用哈希值设置密码,该参数可选。

                        'password':表示用户登录时使用的普通明文密码。

                        IDENTIFINED WITH:为用户指定一个身份验证插件。

                        auth_plugin:是插件的名称,插件的名称可以是一个带单引号的字符串,或者带引号的字符串。

                        auth_string:是可选的字符串参数,该参数将传递给身份验证插件,由该插件解释该参数的意义。

                2.2.2、使用GRANT语句创建新用户。

                        CREATE USER语句创建的新用户没有任何权限,GRANT语句不仅可以创建新用户,还可以在创建的同时

                        对用 户授权。                        

                        格式:

GRANT privileges ON db.table

TO 'user'@'host' [IDENTIFIED BY 'password'] [,user[IDENTIFIED BY 'password']]

[WITH GRANT OPTION];

                        privileges:表示赋予用户的权限类型。

                        db.table:表示用户的权限所作用的数据库中的表。

                        IDENTIFIED BY:表示用来设置用户的密码。

                        'password':表示用户登录时使用的普通明文密码。

                        WITH GRANT OPTION:为可选参数,表示对新建的用户赋予GRANT权限,即该用户可对其他用户赋予权限

                2.2.3、直接操作MYSQL用户表

INSERT INTO mysql.user(Host,User,Password,[privilegelist])

VALUES('host','username',PASSWORD('password'),privilegevaluelist);

                        用户添加成功后还需要使用 FLUSH PRIVILEGES命令,告诉服务器重新加载授权表(重启服务器也会重新加载授权表)

        2.3、删除普通用户

                2.3.1、使用DROP USER语句删除用户

DROP USER user[,user]

                2..3.2、使用DELETE语句删除用户

DELETE FROM MYSQL.user WHERE host='hostname' and user='username';

        2.4、root用户修改自己的密码

                2.4.1、使用mysqladmin命令在命令行指定新密码

mysqladmin -u username -h localhost -p password 'newpwd'

                2.4.2、修改MYSQL数据库的user表

UPDATE mysql.user set Password=PASSWORD('rootpwd') WHERE User='root' and Host='localhost'

                        执行UPDATE语句后,需要执行FLUSH PRIVILEGES语句重新加载用户权限。

                2.4.3、使用SET语句修改root用户密码

SET PASSWORD=PASSWORD('rootpwd');

                        需要执行FLUSH PRIVILEGES语句重新加载用户权限。

        2.5、root用户修改普通用户密码

                2.5.1、使用set语句修改普通用户密码

SET PASSWORD FOR 'user'@'host'=PASSWORD('somepassword');

                2.5.2、使用UPDATE修改普通用户密码

UPDATE mysql.user set Password=PASSWORD('rootpwd') WHERE User='userName' and Host='hostName'

                        执行UPDATE语句后,需要执行FLUSH PRIVILEGES语句重新加载用户权限。

                2.5.3、使用GRANT语句修改普通用户密码

                        在全局级别使用GRANT USAGE语句指定某个账户的密码而不影响账户当前权限。

GRANT USAGE ON *.* TO 'someuser'@'%' IDENTIFIED BY 'somepassword';

        2.6、普通用户修改密码

SET PASSWORD=PASSWORD('newpwd');

                需要执行FLUSH PRIVILEGES语句重新加载用户权限。

        2.7、root用户密码丢失的解决办法

                2.7.1、使用 --skip-grant-tables选项启动MySQL服务

                        windows下:(先切换到MYSQL的bin目录下)

                                mysqld命令如下: 

mysqld --skip-grant-tables

                                mysqld-nt命令如下:                       

 mysqld-nt --skip-grant-tables

                        linux下:

                                mysqld_self命令如下:

mysqld_self --skip-grant-tables user=mysql

                                /etc/init.d/mysql命令如下:

/etc/init.d/mysql start-mysqld --skip-grant-tables user

                2.7.2、使用root用户登录,重新设置密码

                        windows下:

                        1)、使用net stop mysql命令停止MYSQL服务进程

                        2)、在命令行输入mysqld --skip-grant-tables选项启动MySQL服务

                        3)、打开另外一个命令窗口,输入不加密码的登录命令。

                        4)、登录成功后可以使用UPDATE语句h或者使用mysqladmin命令重新设置root密码

                        5)、加载权限表:需要执行FLUSH PRIVILEGES语句重新加载用户权限。

3、权限管理

        3.1、MySQL各种权限

        3.2、授权

                3.2.1、全局层级

                        全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。

                        GRANT ALL ON *.* 和 REVOKE ALL ON *.*只授予和撤销全局权限

                3.2.2、数据库层级

                        数据库权限适用于一个给定数据库中所有目标。这些权限存储在mysql.db和mysql.host表中。

                        GRANT ALL ON db_name.* 和 REVOKE ALL ON db_name.*只授予和撤销数据库权限

                3.2.3、表层级

                        表权限适用于一个给定表中所有列。这些权限存储在mysql.tables_priv表中。

                        GRANT ALL ON db_name.table_name 和 REVOKE ALL ON db_name.table_name只授予和撤销表权限

                3.2.4、列层级

                        列权限适用于一个给定表中单一列。这些权限存储在mysql.columns_priv表中。

                3.2.5、子程序层级

                        CREATE ROUTINE、ALTER ROUTINE、EXECUTE和GRANT权限适用于已存储的子程序。

        3.3、收回权限

                3.3.1、收回所有用户的所有权限

                        REVOKE ALL PRIVILEGES,GRANT OPTION

     REVOKE ALL PRIVILEGES ON db_name.* FROM 'new_user'@'localhost';

                3.3.2、收回指定的权限

REVOKE priv_type[(columns)][,priv_type[(columns)]]...

ON table1,table2,....,tablen

FROM 'user'@'host'[,'user'@'host'...]

        3.4、查看权限

       SHOW GRANTS FOR 'user'@'host'

4、访问控制

        4.1、连接核实阶段

        4.2、请求核实阶段

5、安全考虑

        通常建议避免使用超级用户进行日常操作,而是创建具有特定权限的普通用户。

        定期审查并更新用户权限,确保安全

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

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

相关文章

使用API有效率地管理Dynadot域名,创建文件夹管理域名

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

mobaxterm怎么ssh连接

要使用 MobaXterm 进行 SSH 连接,请按照以下步骤操作: 1、首先,确保已经安装了 MobaXterm 软件。 你可以在官方网站(https://mobaxterm.mobatek.net/)上下载并安装它。 2、打开 MobaXterm 软件后,你会看…

新手快速上手IDEA【常用快捷键】

目录 一、常用二、进阶(提高编码速度)三、其他四、查找、替换与关闭最后 一、常用 说明快捷键复制代码ctrl c粘贴ctrl v剪切ctrl x撤销ctrl z反撤销ctrl shift z保存-save allctrl s全选-select allctrl a 二、进阶(提高编码速度&a…

AB测试实战

AB测试实战 1、AB测试介绍🐾 很多网站/APP的首页都会挂一张头图(Banner),用来展示重要信息,头图是否吸引人会对公司的营收带来重大影响,一家寿险公司Humana设计了如下三张头图,现在需要决定使用哪一张放到首页&#x…

SSRF思路及步骤

什么是SSRF? SERVER SIDE REQUEST FORGERY的简写 因为服务器本身提供了资源获取相关的服务,在资源地址能够被用户控制时,将可能导致攻击者利用服务器身份获取预期外的资源的后果 危害? 条件满足的情况下:突破网络防…

electron-Vue: Module parse failed: Unexpected character ‘ ‘

​ electron-Vue项目中,我自己写了一个node的C扩展(xx.node),然后在.vue文件里import它,然后运行npm run electron:serve,报错如下: ​​ electron-Vue打包默认使用webpack,默认情况下webpack没…

Android Coil的简单介绍及使用

前言: 本文是借鉴网上大佬的Coil相关技术文章及结合自己项目中的实际使用情况,对Coil作一个简单介绍。 简介: Coil是一个Android的图片加载框架库,是通过Kotlin协程的方式加载图片的,相对于Glide、Picasso、Fresco等…

AWVS+BP+XRAY三层联动扫描漏洞

1. 前言 本报告详细记录了使用AWVS(Acunetix Web Vulnerability Scanner)、Burp Suite和Xray进行的漏洞扫描结果。旨在帮助开发团队识别和修复系统中的安全漏洞,提升整体安全性。 2. 扫描工具简介 AWVS(Acunetix Web Vulnerabi…

公钥身份验证被拒绝

vim /etc/ssh/sshd_config 确保以下选项设置如下: PermitRootLogin no PubkeyAuthentication yes 注释掉GSSAPI 相关的选项 #GSSAPIAuthentication yes #GSSAPICleanupCredentials no 确保该UsePAM行设置为yes: UsePAM yes 保存文件并重启 sshd 服…

从零开始:如何通过美颜SDK构建自己的直播美颜工具

今天,我将详细介绍如何通过美颜SDK从零开始构建自己的直播美颜工具。 一、了解美颜SDK 什么是美颜SDK 开发者可以通过集成SDK,快速在应用中实现这些功能,而无需从头编写复杂的图像处理算法。 选择合适的美颜SDK 选择时可以根据以下几个方…

响应式网站设计:为何成为首选及其优点

随着近 35 亿万人使用不同的设备访问互联网,响应性网站的设计变得越来越重要。大多数网站的宽度 720 到 1,000 像素间。假如网站访问者的显示器设置为 800 像素或更大且页面宽度超过 720 像素,那么必须向右滚动屏幕来显示所有的信息。目前的问题是不清楚…

科普丨什么是数字孪生灌区(平台)?如何建设?有何好处?

在农业发展的新时代,数字孪生灌区的概念逐渐走进大众视野,成为推动农业现代化、提升粮食安全保障能力的关键力量。那么,究竟什么是数字孪生灌区?它又是如何建设的?又能为我们带来哪些好处呢? 数字孪生灌区…

【TB作品】msp430g2553单片机,家用可燃气体监测报警器,MQ-2,MQ5,PWM风扇

功能 //家用可燃气体监测报警器 //硬件:MQ-2 MQ5 OLED 蜂鸣器 按键 风扇 //1 OLED显示天然气、液化气浓度 //2 OLED显示可燃气体报警临界值 //3 2个按键用于修改可燃气体报警临界值 //4 MQ2检测到的浓度或者MQ7检测到的浓度 高于临界值时,蜂鸣器报警风扇…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

qlv文件怎么转换成mp4,qlv文件转换成mp4文件的工具软件

qlv转MP4的方法,一直是广大视频爱好者关注的问题。qlv是一种较为特殊的视频格式,而MP4则以其广泛的兼容性和优秀的播放效果,成为众多设备上的首选格式。因此,掌握qlv转MP4的技巧,对于提升视频观看体验至关重要。本文将…

svg使用 element plus 使用外部下载的svg,使用或作为背景图片的使用方式,svg背景填充自适应父级宽高

friger.vue 注意&#xff1a;引入路径后加#svgView(preserveAspectRatio(none))&#xff0c;可解决宽高设置无效的问题 代码上就这两句就行&#xff0c;它去这个路径下去找/assets/svgs/login-bg.svg&#xff0c;往这个目录下放svg文件就行<template><div class&quo…

D435相机结合Yolo V8识别出目标物体,并转点云出抓取位姿。

最近项目上需要完成整个识别、定位、到最后的抓取流程。 分享一下&#xff0c;通过使用D435相机并结合Yolo V8识别出目标物体后&#xff0c;抠取出目标物体部分的有效深度图&#xff0c;最后将前景物体部分的RGB D435相机结合Yolo V8识别出目标物体&#xff0c;并转点云出抓取位…

chatgpt之api的调用问题

1.调用api过程中&#xff0c;出现如下报错内容 先写一个测试样例 import openaiopenai.api_key "OPEN_AI_KEY" openai.api_base"OPEN_AI_BASE_URL" # 是否需要base根据自己所在地区和key情况进行completion openai.ChatCompletion.create(model"g…

空调外机清洁机器人设计

现在的空调&#xff0c;有很多安装在高层&#xff0c;一旦安装使用后&#xff0c;外机几乎不可能再清洗。因为费用高&#xff0c;清洁工人的钱应该是好几百还不止&#xff1b;清洁风险高&#xff0c;空调师傅需要高空作业&#xff0c;如果发生意外业主难以承担。但空调运行几年…