iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL用户权限验证与管理方法的示例分析
  • 573
分享到

MySQL用户权限验证与管理方法的示例分析

2024-04-02 19:04:59 573人浏览 八月长安
摘要

这篇文章给大家分享的是有关Mysql用户权限验证与管理方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Mysql权限分两阶段验证1. 服务器检查是否允许连接:用户

这篇文章给大家分享的是有关Mysql用户权限验证与管理方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、Mysql权限分两阶段验证

1. 服务器检查是否允许连接:用户名、密码,主机地址。

2. 检查每一个请求是否有权限实施。

二、Mysql权限列表

权限权限级别权限说明
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服务器管理创建用户权限
proccess服务器管理查看进程权限
reload服务器管理执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限
replication client服务器管理复制权限
replication slave服务器管理复制权限
show databases服务器管理查看数据库权限
shutdown服务器管理关闭数据库权限
super服务器管理执行kill线程权限

三、Mysql用户权限管理操作

1. 权限查询:

(1)查看mysql的所有用户及其权限:

select * from mysql.user\G;

(格式化显示)

(2)查看当前mysql用户权限:

show grants;

(3)查看某个用户的权限:

show grants for 用户名@主机;

示例:

show grants for root@localhost;

2. Mysql用户创建:

方法一:使用create user命令创建。

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

示例:

create user 'wjt'@'localhost' identified by 'wujuntian';

方法二:直接向数据表mysql.user中插入一条用户记录。

示例:

复制代码 代码如下:

insert into mysql.user set user='wujuntian',host='localhost',passWord=password('123123');

注意:

使用方法二一定要记得要执行flush privileges刷新权限。其次,mysql5.7以后,mysql.user表的password字段已被authentication_string代替,所以应将“password”改为“authentication_string”,密码一定要使用password函数加密。

3. Mysql用户删除:

drop user '用户名'@'主机';

4. Mysql用户权限授予:

刚创建的用户默认是没有权限的,需要使用grant指令进行权限的授予。

grant指令完整格式:

grant 权限列表 on 数据库名.数据表名 to '用户名'@'主机' identified by '密码' with grant option;

示例:

grant all privileges on *.* to 'wjt'@'localhost' identified by "wujuntian" with grant option;

可使用“*”表示所有数据库或所有数据表,“%”表示任何主机地址。

可以使用grant重复给用户添加权限,进行权限叠加。

with grant option:这个选项表示该用户可以将自己拥有的权限授权给别人。

记得授权后一定要刷新权限:

flush privileges;

5. Mysql用户权限回收:

revoke指令格式:

revoke 权限列表 on 数据库名.数据表名 from 用户名@主机;

示例:

revoke select on test.user from wjt@localhost;

注意:

其实GRANT语句在执行的时候,如果权限表中不存在目标账号,则创建账号;如果已经存在,则执行权限的新增。

usage权限不能被回收,也就是说,REVOKE用户权限并不能删除用户。

6. 对账户重命名:

rename user '旧用户名'@'旧主机' to '新用户名'@'新主机';

示例:

rename user 'wujuntian'@'localhost' to 'ajun'@'localhost';

7. Mysql用户密码修改:

方法一:使用set password命令。

set password for '用户名'@'主机' = password('新密码');

示例:

set password for 'root'@'localhost' = password('123456');

方法二:修改mysql.user表中的password(或authentication_string)字段。

示例:

复制代码 代码如下:

update mysql.user set password=password('123123') where user='root' and host='localhost';

注意:

此方法一定要执行“flush privileges;”指令刷新权限,否则密码修改无法生效。Mysql5.7以后应将“password”改为“authentication_string”。

方法三:使用grant指令在授权时修改密码:

grant select on 数据库名.数据表名 to 用户名@主机 identified by '新密码' with grant option;

示例:

复制代码 代码如下:

grant select on test.user to ajun@localhost identified by '111111' with grant option;

方法四:运行mysqladmin脚本文件。

该文件一般在mysql安装目录下的bin目录中。进入该目录,根据一下两种具体情况输入命令(只有root用户有这个权限)。

(1)用户尚无密码:

mysqladmin -u 用户名 password 新密码;

(2)用户已有密码:

mysqladmin -u 用户名 -p password 新密码;

(回车后会提示输入旧密码,输入之后即可修改成功。)

注意:

更改密码时候一定要使用PASSWORD函数(mysqladmin 和GRANT 两种方式不用写,会自动加上)。

8. 忘记密码登录mysql:

方法一:

先停止正在运行的Mysql服务,在命令行窗口进入mysql安装目录下的bin目录,在-skip-grant-tables参数下运行mysqld文件(linux系统运行mysqld_safe文件更安全):

mysqld --skip-grant-tables

这样可以跳过Mysql的访问控制,在控制台以管理员的身份进入mysql数据库。另外再开启一个命令行窗口,进入mysql安装目录下的bin目录,直接输入:mysql,回车,即可登录mysql,然后就可以重新设置密码了(注意:此时“Mysql用户密码修改”中的四种方法只有第二种方法能使用!)。设置成功后退出,重启Mysql服务。

方法二:修改mysql配置文件my.ini。

其实原理和方法一一样,都是利用Mysql提供的--skip-grant-tables参数来跳过Mysql的访问控制。打开mysql配置文件my.ini,在'[mysqld]'下加入“skip-grant-tables”,保存,重启Mysql服务,然后就可以不需密码登录mysql进行密码修改了。

Mysql中的“mysql”数据库存储着所有Mysql用户的权限信息数据表。当Mysql启动时,所有的权限表内容都被读进内存中,进行权限判断时直接使用内存中的内容进行判断。用grant、revoke或set password对权限表进行的修改会立即被服务器注意到,GRANT操作的本质就是修改权限表后进行权限的刷新。但是如果手工修改权限表,例如使用insert、update、delete等操作权限表的话,应该执行一个flush privileges命令,该命令会使服务器重新读取权限表内容到内存,从而使修改生效。如果不执行该命令,必须重启mysql服务才能生效。所以,最好使用grant、revoke或set password对权限表进操作,可以省去执行flush privileges命令的麻烦,而且如果忘了执行这个命令的话你会很抓狂。。。

不仅如此,删除用户、重命名用户最好也分别使用drop user、rename user命令进行操作,而不要使用delete、update命令进行操作。前者不但会对mysql.user数据表进行操作,同时也会更新其他权限表的记录,而后者只会对mysql.user表的数据进行操作,这样会出现很多问题,因为用户的权限信息不仅仅存在于mysql.user表中。比如你使用delete删除了mysql.user表中的一个用户,但是没有操作其他权限数据表的话,那么其他权限数据表例如tables_priv中关于该用户的权限记录还存在着,下次如果想使用create user命令创建相同名称的用户会失败,只能使用insert into指令向mysql.user表中插入记录,或者先把其他权限数据表中与该用户名相关的记录删除。使用update命令重命名用户也会出现很大问题,重命名后用户失去了很多的权限,而其他权限表中关于原用户名的记录则成了没用的记录,除非你对每一个权限表都进行相同的更新操作,但这很麻烦。所以,使用drop user、rename user吧,一个命令就可以让系统自动帮你完成所有事情,何乐而不为呢!

Mysql权限检查:

mysql 先检查对大范围是否有权限,如果没有再到小范围里去检查。比如:先检查对这个数据库是否有select权限,如果有,就允许执行。如果没有,再检查对表是否有select权限,一直到最细粒度,也没有权限,就拒绝执行。因此,粒度控制越细,权限校验的步骤越多,性能越差。

感谢各位的阅读!关于“MySQL用户权限验证与管理方法的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL用户权限验证与管理方法的示例分析

本文链接: https://www.lsjlt.com/news/57476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL用户权限验证与管理方法的示例分析
    这篇文章给大家分享的是有关MySQL用户权限验证与管理方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Mysql权限分两阶段验证1. 服务器检查是否允许连接:用户...
    99+
    2024-04-02
  • ORACLE用户权限管理的示例分析
    小编给大家分享一下ORACLE用户权限管理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天带大家一起来了解一下ORA...
    99+
    2024-04-02
  • ​MySQL中用户与权限的示例分析
    小编给大家分享一下MySQL中用户与权限的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL用户与权限 ...
    99+
    2024-04-02
  • MySQL中用户与授权管理的示例分析
    这篇文章将为大家详细讲解有关MySQL中用户与授权管理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 一、前言 做为Mysql数据库管理员管理用户账户,是一...
    99+
    2024-04-02
  • mysql中用户管理和权限控制的示例分析
    这篇文章主要介绍mysql中用户管理和权限控制的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一:用户的创建(两种方法): 方法一:CREATE USER 'use...
    99+
    2024-04-02
  • mysql用户和权限的示例分析
    小编给大家分享一下mysql用户和权限的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 用...
    99+
    2024-04-02
  • mongodb基础之用户权限管理的示例分析
    这篇文章主要介绍了mongodb基础之用户权限管理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。启动mongodb并连接./bin...
    99+
    2024-04-02
  • SpringBoot Security使用MySQL实现验证与权限管理
    目录1. 创建用户表和虚拟凭据2. 配置数据源属性3. 声明弹簧安全性和MySQL JDBC驱动程序的依赖关系4. 配置 JDBC 身份验证详细信息5. 自定义登录验证过程6. 登录...
    99+
    2022-11-13
    SpringBoot Security MySQL登陆验证 SpringBoot Security MySQL权限管理
  • mysql用户管理的示例分析
    这篇文章将为大家详细讲解有关mysql用户管理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明用户的功能是登录MySQL数据库,管理MySQL对象,通过user表查看所有用户。mysql用户帐...
    99+
    2023-06-20
  • mysql中账户和权限的示例分析
    小编给大家分享一下mysql中账户和权限的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!当客户端连接 MySQL 服务器时,必须提供有效的身份认证,例如用户名和密码。当用户执行任何...
    99+
    2024-04-02
  • MySQL与Oracle差异比较之用户权限的示例分析
    这篇文章给大家分享的是有关MySQL与Oracle差异比较之用户权限的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。用户权限编号类别ORACLEMYSQL注释1创建用户C...
    99+
    2024-04-02
  • MySQL权限控制和用户与角色管理实例分析讲解
    目录一、mysql用户登录二、用户管理三、权限控制四、角色管理一、MySQL用户登录 一般在本机上我们的登录命令:mysql -u root -p+密码 这里介绍命令的作用:-u  指定用户名-h &...
    99+
    2022-12-01
    MySQL权限控制 MySQL用户与角色管理
  • MySQL用户与权限的管理详解
    本文实例讲述了MySQL用户与权限的管理。分享给大家供大家参考,具体如下: 用户连接到MySQL,可以做各种查询,这都是MySQL用户与权限功能在背后维持着操作。 用户与数据库服务器交互数据,分为两个阶...
    99+
    2024-04-02
  • MongoDB用户及权限管理之角色说明的示例分析
    这篇文章给大家分享的是有关MongoDB用户及权限管理之角色说明的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mongodb安装完后默认是不开启auth模块的,普通用户...
    99+
    2024-04-02
  • MySQL用户与权限管理介绍
    这篇文章主要介绍“MySQL用户与权限管理介绍”,在日常操作中,相信很多人在MySQL用户与权限管理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL用户与权限管理...
    99+
    2024-04-02
  • MySQL 中的权限管理及验证流程
    目录引言权限的验证流程第一层:用户登录第二层:全局权限第三层:数据库级别权限第四层 :数据表级权限第五层:字段级权限第六层:对象级权限总结引言 某天,女朋友突然问你:“还...
    99+
    2024-04-02
  • MySQL中权限的示例分析
    小编给大家分享一下MySQL中权限的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、前言很多文章中会说,数据库的权限按...
    99+
    2024-04-02
  • MySQL如何实现用户管理与权限管理
    这篇文章主要为大家展示了“MySQL如何实现用户管理与权限管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL如何实现用户管理与权限管理”这篇文章吧。 ...
    99+
    2024-04-02
  • spring aop实现用户权限管理的示例
    AOP 在实际项目中运用的场景主要有 权限管理(Authority Management)、事务管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging) ...
    99+
    2023-05-30
    spring aop 权限
  • linux中账号管理与ACL权限设置的示例分析
    这篇文章主要介绍了linux中账号管理与ACL权限设置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。====账号管理配置文件====vim /etc/passwd,...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作