mysql用户管理知识点

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、安全考虑

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

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

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

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

相关文章

虚拟仿真实训平台如何与不同专业进行融合?

虚拟仿真实训平台根据跨专业实训教学和职业培训的不同特点,兼顾实训课程设计的专业性和兼容性,根据不同专业特性确定虚拟仿真实训教学内容,研发虚拟仿真实训教学资源,优化人才培养方案和职业培训方案,改革实训教学体系…

游戏陪玩系统源码线上陪玩软件开发电竞陪练小程序陪玩APP

思维导图 规则说明 支持陪玩官,一级和二级,系统配置设置的是初始化佣金,可以单个设置某个人的佣金比例,分销模块只涉及到下单交易模块,其他的不参与,邀请的用户被下单,即可获得收益。 理解规则…

【面试笔记】C++ 软件开发工程师,智驾研发方向(非算法)

文章目录 1. 前言2. 基础问题2.1 什么是C++中的类?如何定义和实例化一个类?2.2 请解释C++中的继承和多态性。2.3 什么是虚函数?为什么在基类中使用虚函数?2.4 解释封装、继承和多态的概念,并提供相应的代码示例。2.5 如何处理内存泄漏问题?提供一些常见的内存管理技术。2…

LabVIEW冲击响应谱分析系统

LabVIEW冲击响应谱分析系统 开发了一种基于LabVIEW开发的冲击响应谱分析系统,该系统主要用于分析在短时间内高量级输入力作用下装备的响应。通过改进的递归数字滤波法和样条函数法进行冲击响应谱的计算,实现了冲击有效持续时间的自动提取和响应谱的精准…

13.56MHz电动车NFC刷卡解锁

随着电动车市场的快速发展,车主对车辆的智能化和便捷性的要求也在不断提升。仪表盘作为电动车的重要组成部分,不仅需要提供基本的行驶信息,还需要具备智能交互功能。 基于13.56MHz频率的NFC(近场通信)技术为电动车仪表…

李国武:六西格玛绿带项目的实施过程中可能遇到哪些问题?

作为六西格玛管理体系中的中坚力量,绿带项目在企业的转型升级中扮演着举足轻重的角色。然而,在实施六西格玛绿带项目的过程中,企业往往会遭遇一系列挑战。具体如深圳天行健企业管理咨询公司下文所述: 首先,人才与知识的…

雷士大路灯有必要买吗?雷士、书客、孩视宝护眼落地灯实测PK!

面对市面上众多的护眼大路灯品牌,其中雷士、书客和孩视宝这几款大路灯受到了广泛的青睐,也是热度比较高的几款产品,正是因为这么多款大路灯,很多伙伴在看到文章推荐后很纠结,不知道如何选择,也有一部分伙伴…

微信小游戏性能优化解决方案全新发布

小游戏凭借其简单易上手、玩法多样、互动性强的特点,迅速在市场中崭露头角。MMO、ARPG、卡牌等游戏类型也纷纷入局。玩家对启动时间长、发热、加载缓慢、闪退等问题也越来越敏感。 为了突破这些性能瓶颈,UWA全新发布了针对微信小游戏的性能优化解决方案…

水库大坝安全监测系统打通监控数据“最后一公里”

一、概述 我国有水库8万座左右,其中土石坝多数,病险水库占水库也很多。众所周知,水库在防洪、兴利上具有重要的调节作用,如何保证水库安全,及合理有效的利用水资源,是水利建设者需要探讨的主要内容。科学技…

OpenCV学习(4.2) 图像的几何变换

1.目标 学习将不同的几何变换应用到图像上,如平移、旋转、仿射变换等。你会看到这些函数: cv.getPerspectiveTransform 2.缩放 缩放是调整图片的大小。 OpenCV 使用 cv.resize() 函数进行调整。可以手动指定图像的大小,也可以指定比例因子。可以使用不…

【python】成功解决“ModuleNotFoundError: No module named ‘gensim’”错误的全面指南

成功解决“ModuleNotFoundError: No module named ‘gensim’”错误的全面指南 在Python编程中,尤其是进行文本挖掘和自然语言处理(NLP)时,gensim库是一个常用的工具,用于主题建模、文档相似度计算、词向量表示&#x…

【教程】使用 Tailchat 搭建团队内部聊天平台,Slack 的下一个替代品!

前言 多人协作,私有聊天一直是团队协作的关键点,现在有很多专注于团队协作的应用和平台,比如飞书、企业微信和Slack等。这期教程将带你手把手的搭建一个在线的团队协作向聊天室,希望对你有所帮助! 本期聊天室使用TailChat作为服务…

服务器数据恢复—raid5阵列上分配的卷被删除后重建如何恢复被删除卷的数据?

服务器存储数据恢复环境: 某品牌FlexStorage P5730服务器存储,存储中有一组由24块硬盘组建的RAID5阵列,包括1块热备硬盘。 服务器存储故障: 存储中的2个卷被删除,删除之后重建了一个新卷。需要恢复之前删除的一个卷的数…

【Java数据结构】二叉树详解(二)

🔒文章目录: 1.❤️❤️前言~🥳🎉🎉🎉 2. 二叉树的模拟——正文 2.1获取树中节点的个数 2.2获取叶子节点的个数 2.3获取第K层节点的个数 2.4获取二叉树的高度 2.5 检测值为value的元素是否存在 …

明天15点!如何打好重保预防针:迎战HVV经验分享

在当今数字化时代,网络攻击日益猖獗,各行各业面临的网络安全威胁不断升级。从钓鱼邮件到复杂的APT攻击,网络犯罪分子的手法层出不穷,给各行各业的信息安全带来了前所未有的挑战。 在这样的背景下,"HVV行动"应…

【案例实战】 基于OpenCV实现鹿茸面积计算

学习《人工智能应用软件开发》,学会所有OpenCV技能就这么简单! 做真正的OpenCV开发者,从入门到入职,一步到位! 有人在我得B站答疑群里发了下面的图: 问:如何计算鹿茸最外圈蜡皮面积占整个鹿茸…

从人才战略到人才生态,金徽酒高增长的“明线”与“暗线”

执笔 | 文 清 编辑 | 扬 灵 2016年3月,金徽酒于A股上市,全年实现营收12.77亿元。2023年,金徽酒实现营收25.48亿元,比上市当年增加99.5%,近乎翻倍。而当我们深度关注金徽酒,在其业绩高增长的“明线”背…

弘君资本:半导体板块强势拉升,上海贝岭涨停,台基股份等大涨

半导体板块5日盘中强势拉升,到发稿,台基股份涨超15%,中晶科技、上海贝岭等涨停,国科微、长川科技涨超7%,紫光国微、富满微、金海通等涨超5%。 组织表示,半导体职业处于历史较低水平,大基金三期…

通配符https数字证书260

随着越来越多的人开始使用互联网,互联网上的信息变得繁杂,用户很难识别网站信息的真实性,为了维护互联网的环境,开发者开始使用https证书对网站传输数据进行加密和身份认证,以此来保护用户的隐私以及标示网站的真实性。…

电脑e盘不见了,看这三个解决方法

在使用电脑的过程中,我们有时会遇到E盘突然消失的情况,这无疑给我们的数据管理和使用带来了很大的困扰。那么,电脑e盘不见了是怎么回事呢?本文将为你讲解可能的原因,并为你提供三个实用的解决方法。通过了解这些原因和…