基于Linux操作系统中的MySQL用户权限管理(三十二)

news2024/11/15 21:36:46

用户权限管理

目录

一、概述

二、用户权限类型

1、ALL PRIVILEGES

2、CREATE

3、DROP

4、SELECT

5、INSERT

6、UPDATE

7、DELETE

8、INDEX

9、ALTER

10、CREATE VIEW和CREATE ROUTINE

11、SHUTDOWN

12、GRANT OPTION

三、用户赋权

四、权限删除

五、用户删除

六、查看拥有哪些用户 

七、查看用户拥有哪些权限


一、概述

       数据库用户权限管理是数据库系统中非常重要的一个方面,它用于控制不同用户访问和操作数据库的权限范围。数据库用户权限管理可以保护敏感数据和数据库结构,确保只有被授权的用户才可以操作和使用数据库,防止数据被修改或泄露,并最大程度地保证数据库的安全。

二、用户权限类型

实验前提条件:

创建用户a1

create user 'a1'@'%' identified by '123123.coM';

       这个命令是用来在MySQL数据库中创建一个名为'a1',同时允许从任何主机(%)使用任何IP地址连接到该用户。该用户的密码为'123123.coM'。 

 使用root用户登录赋予a1用户如下权限并进行验证:

1、ALL PRIVILEGES

       拥有该权限的用户可以执行所有数据库的所有操作,包括创建/删除/修改数据库和表、执行 SELECT/INSERT/UPDATE/DELETE 等语句。

grant all privileges on aaa.* to 'a1'@'%' identified by '123123.coM';

 每次赋予权限后记得刷新配置,养成良好习惯

flush privileges;

 切换到a1用户检查是否有权限进行如下操作:

mysql -ua1 -p123123.coM

 验证创建数据表命令

create table aaa(
id int null,
name char(50),
age int null
);

 验证修改数据表命令

alter table aaa rename to bbb;

 执行insert命令

insert into bbb(id,name,age) values
(1,'zn',27),
(2,'zx',25);

 

 执行update命令

update bbb set name='zkx' where id=2;

 

 执行select命令

select * from bbb;

 

执行delete命令

delete from bbb where id=2;

 

删除数据表命令

删除数据表但是保留框架(表结构)命令

delete from bbb;

删除数据表 

drop table bbb;

 

2、CREATE

       拥有该权限的用户可以创建新数据库和表。

grant create on aaa.* to 'a1'@'%' identified by '123123.coM';

 创建数据表

create table aaa(
id int,
name char(10)
);

 

删除数据表

drop table aaa;

 这个错误提示意味着用户'a1'@'localhost'没有权限执行DROP命令,用于删除表'aaa'。

delete from aaa;

  这个错误提示意味着用户'a1'@'localhost'没有权限执行DROP命令,用于删除表'aaa'。

3、DROP

       拥有该权限的用户可以删除数据库和表。

grant drop on aaa.* to 'a1'@'%' identified by '123123.coM';

 

drop table aaa;

 

4、SELECT

       拥有该权限的用户可以执行 SELECT 语句,即查询数据。

grant select on aaa.* to 'a1'@'%' identified by '123123.coM';

select * from a2;

 

5、INSERT

       拥有该权限的用户可以执行 INSERT 语句,即向表中插入数据。

grant insert on aaa.* to 'a1'@'%' identified by '123123.coM';

 进入aaa库下创建表内容(  use aaa;  )

insert into a2(id,name,age,phone) values
(5,'zkx',25,123456789);

6、UPDATE

       拥有该权限的用户可以执行 UPDATE 语句,即更新表中的数据。

grant update on aaa.* to 'a1'@'%' identified by '123123.coM';

 修改刚才创建的内容

 这里会提示错误,没有select权限因为我们在使用上述命令过程中用到了where条件,此条件属于select命令,所以无法进行使用

 添加select权限

grant select on aaa.* to 'a1'@'%' identified by '123123.coM';

 进行验证

 

7、DELETE

       拥有该权限的用户可以执行 DELETE 语句,即删除表中的数据。

grant delete on aaa.* to 'a1'@'%' identified by '123123.coM';

 进行验证

8、INDEX

       拥有该权限的用户可以创建和删除索引。

grant index on aaa.* to 'a1'@'%' identified by '123123.coM';

 创建索引

create index idx_name on a2 (name);

删除索引 

alter table a2 drop index idx_name;

 删除索引会提示报错,因为我们在赋予权限时没有给它alter权限

添加alter权限 

grant alter on aaa.* to 'a1'@'%' identified by '123123.coM';

 删除索引

alter table a2 drop index idx_name;

9、ALTER

       拥有该权限的用户可以更改表的结构定义,例如更改列的属性、重命名表或更改表的引擎类型等。

grant alter on aaa.* to 'a1'@'%' identified by '123123.coM';

 因为我们需要查看表格属性,给a1用户再添加一个select权限

desc a2;

 在a2表格中添加一行出生日期的列(这里我们用date表示出生日期)

alter table a2 add column date date;

10、CREATE VIEW和CREATE ROUTINE

       分别拥有创建视图和创建存储过程等常规操作的权限。

grant create view,create routine on aaa.* to 'a1'@'%' identified by '123123.coM';

 使用上述命令进行操作还需要给予select权限

创建视图所需权限   select

创建存储过程所需权限   execute,select

 创建视图

create view z1_view as select name,age from z1;

验证视图

select * from z1_view;

 创建存储过程

11、SHUTDOWN

       拥有该权限的用户可以关闭 MySQL 服务器。

shutdown;

 没有赋予shutdown权限时:

       这个错误是MySQL数据库服务器返回的一个访问拒绝错误。根据错误消息,您尝试执行了一个需要"SHUTDOWN"权限的操作,但是您的账户没有被授予这个权限,所以访问被拒绝了。

        "SHUTDOWN"命令是作为超级用户(通常是数据库管理员)在命令行或管理工具中直接执行的。

       在MySQL数据库中,使用"shutdown;"命令将关闭整个MySQL服务器实例,包括所有正在运行的数据库和连接。这意味着所有未保存的数据将丢失,所有已建立的连接将被终止,数据库将停止运行。

       使用"shutdown;"命令要谨慎,因为它会导致系统中断,并可能导致数据损坏或丢失。必须确保在执行此命令之前,所有数据都已备份或保存,所有连接都已断开,并且不再需要数据库运行。

       在生产环境中,通常不应该直接使用"shutdown;"命令来关闭MySQL服务器。而是通过正常的维护程序或脚本来停止服务,以确保数据的完整性和可靠性。

root用户具有shutdown权限

shutdown;

 

 停止以后无法进行操作

show databases;

 查看状态 

systemctl status mysqld

启动即可登录MySQL 

systemctl start mysqld

12、GRANT OPTION

       拥有该权限的用户可以将自己的权限授予其他用户或组。

grant grant option on aaa.* to 'a1'@'%' identified by '123123.coM';

 取消授予权限

revoke grant option on aaa.* from 'a1'@'%';

三、用户赋权

    格式:grant  权限  on  数据库.数据表  to  授权用户@授权主机 identified by  '密码';

grant all privileges on aaa.* to 'a1'@'%' identified by '123123.coM';

 赋予a1用户所有数据操作权限,检查验证

四、权限删除

     格式:revoke  权限类型  on  数据库.数据表  from  授权用户@授权主机;

revoke all privileges on aaa.* from 'a1'@'%';

五、用户删除

    格式: drop user  用户@主机;

drop user 'a1'@'localhost';

 

六、查看拥有哪些用户 

select user,host from mysql.user;

七、查看用户拥有哪些权限

show grants for 'root'@'localhost';

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

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

相关文章

RTThread实际开发问题统计

文章目录 开启DMA rx中断,数据帧总是接收不全就产生中断?PB3/PB4等和JTAG复用的管脚不能使用?uart使用DMA传输,调用close再open之后就接收不到数据了? 开启DMA rx中断,数据帧总是接收不全就产生中断&#x…

C语言指针应该这么学?

数组名的意义: 1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。 2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 3. 除此之外所有的数组名都表示首元素的地址。 根据以上数…

[CrackMe]Cruehead.1.exe的逆向及注册机编写

1. 逆向分析过程 作者弄了很多个对话框来迷惑破解者, 然后真正有用的对话框只有这个 这个窗口过程函数处理的是父窗口 其他的不关心, 只关心WM_COMMAND消息 里面有3个分支, 其中最重要的是按下register按钮的那个 整个逻辑非常清晰, 其算法是把name的每个字符转成大写字母…

测试测试用例设计常见面试题

测试|测试用例设计常见面试题 文章目录 测试|测试用例设计常见面试题1.怎么模拟弱网(测试技巧)2.怎么测试接口(测试技巧)3.怎么对冒泡排序测试(代码类)4.怎么对linux的zip命令进行测试(软件类&a…

Spring Boot项目的创建

hi 大家好,又见面了,今天继续讲解Spring Boot 文章目录 🐶1.什么是Spring Boot?🐶2.Spring Boot的优势🐶3.Spring Boot项目创建🌼3.1使用ieda创建🥝3.1.1下载插件Spring Boot Helper🥝3.1.2创建项目 &…

基于ThreadPoolExecutor实现动态线程池

项目上,我们是根据业务的使用频率,基于ThreadPoolExecutor自定义一个线程池,线程池的核心线程数、最大线程数、阻塞队列的容量都是估计的设置的,但是不知道线程资源的真正使用情况。 1.ThreadPoolExecutor配置参数动态修改 先来…

Linux Day04

目录 一、文件压缩与解压命令 1.1 tar cvf 文件名 ---打包命令生成.tar 1.2 tar xvf 文件名 ----解开包 生成文件 1.3 gzip .tar 压缩 生成.tar.gz压缩包 1.4 gzip -d .tar.gz 解压成包 1.5 直接把压缩包解压成文件 tar zxf .tar.gz 二、Linux 系统上 C 程序的…

Python实现自动登录和下单脚本,代码嘚魅力~

目录标题 前言环境使用:代码实现思路配置浏览器驱动代码实现尾语 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。 Selenium 支持的语言包括C#…

Winget简单介绍

为什么明明Windows的UI更为便捷,但是还是那么多人用的linux,或者mac 主要还是linux和mac的命令行更好用。 虽然windows中也出现了choco这种东西,但是非官方的总觉得不是很令人信服。 这边挂一下官方文档,然后在开始自己的简单实…

深入理解Vue响应式系统:数据绑定探索

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

某某大学某学院后台Phar反序列化GetShell

觉得这个洞还算有点意思,可以记录一下 首先在另一个二级学院进行目录扫描时发现源码www.rar,并且通过一些页面测试推测这两个二级学院应该是使用了同一套CMS 分析源码,发现使用的是ThinkPHP 5.1.34 LTS框架 通过APP、Public得到后台访问路径…

开放自动化软件的硬件平台

自动化行业的产品主要以嵌入式系统为主,历来对产品硬件的可靠性和性能都提出很高的要求。最典型的产品要数PLC。PLC 要求满足体积小,实时性,可靠性,可扩展性强,环境要求高等特点。它们通常采用工业级高性能嵌入式SoC 实…

无涯教程-jQuery - Selectable选择函数

选择能力功能可与JqueryUI中的交互一起使用。此功能可在任何DOM元素上启用选择能力功能。用光标绘制一个框以选择项目。按住Ctrl键可进行多个不相邻的选择。 Select able - 语法 $( "#selectable" ).selectable(); Select able - 示例 以下是一个简单的示例&…

反弹shell确认是否是docker容器

反弹shell确认是否是docker容器 方法一 如果根目录中存在.dockerwenv文件,证明是doker容器 ls /.dockerenv方法二 出现以下类似内容,证明是在doker容器内 cat /proc/1/cgroup

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现GRNN广义回归神经网络多输入单输出回归…

【设计模式——学习笔记】23种设计模式——享元模式Flyweight(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍原理类图外部状态和内部状态 登场角色 案例实现案例1类图代码实现 案例2类图代码实现 享元模式在JDK源码中的使用总结 案例引入 你的公司主要做一些小型的外包项目,之前给客户A做一个产品展示网站,客户A的朋友感觉效果不错…

uniapp小程序自定义loding,通过状态管理配置全局使用

一、在项目中创建loding组件 在uniapp的components文件夹下创建loding组件&#xff0c;如图&#xff1a; 示例代码&#xff1a; <template><view class"loginLoading"><image src"../../static/loading.gif" class"loading-img&q…

SpringBoot统一异常处理和统一返回格式

上篇博客我们讲解了使用AOP来进行统一的用户登录判断&#xff0c;其实像这种功能统一且使用较多的地方&#xff0c;都可以用AOP来处理&#xff0c;除了统⼀的⽤户登录判断之外&#xff0c;AOP 还可以实现&#xff1a; 统⼀⽇志记录统⼀⽅法执⾏时间统计&#xff08;在性能优化…

8.事件对象

8.1获取事件对象 ●事件对象是什么 也是个对象&#xff0c;这个对象里有事件触发时的相关信息 例如&#xff1a;鼠标点击事件中&#xff0c;事件对象就存了鼠标点在哪个位置等信息 ●使用场景 可以判断用户按下哪个键&#xff0c;比如按下回车键可以发布新闻 可以判断鼠标点击…

【动态规划】子数组系列

文章目录 动态规划&#xff08;子数组系列&#xff09;1. 最大子数组和2. 环形子数组的最大和3. 乘积最大子数组4. 乘积为正的最长子数组的长度5. 等差数列划分6. 最长湍流子数组7. 单词拆分8. 环形字符串中的唯一的子字符串 动态规划&#xff08;子数组系列&#xff09; 1. 最…