第八章总结(数据库的安全性维护)

2023-05-16

insert语句创建用户
insert into user (hostuser,passwordssl cipherx509 issuer,x509 subject)values("主机号","用户名",password("密码"),"","","");
update语句修改用户密码 
update user set password=password("密码")
where host="主机号"and user="用户名";  
delete语句删除用户
delete from user where host="主机号"and user="用户名";

注意:以上代码需要刷新权限 ,刷新权限后生效 
刷新权限
flush privileges;

以下代码不需刷新权限直接生效。
create语句创建用户
create user "用户名"@"主机号"identified by"密码";
set语句修改密码 
set password =password("密码");

set password for "用户名"@"主机号"= password("密码");

授予用户权限
GRANT语句不仅是授权语句,还可以达到添加新用户或修改用户密码的作用。

GRANT语句的语法格式为:

GRANT<权限名称>[(字段列表)]ON<对象名>TO<'用户名'>@<'主机>[IDENTIFIED BY[PASSWORD]<'新密码'>][WITH GRANT OPTION];

说明:

①“权限名称”中常用的权限如下。

ALL[PRIVILEGES]:除GRANT OPTION之外的所有简单权限。

CREATE:允许创建数据表。

ALTER:允许修改数据表。

DROP:允许删除数据表。

SELECT:允许检索数据表。

INSERT:允许在数据表中插入数据。

DELETE:允许在数据表中删除数据。

UPDATE:允许在数据表中更新数据。

INDEX:允许在数据表中定义索引。

CREATE VIEW:允许创建视图。

EXECUTE:允许运行指定的存储过程。

②“对象名”有以下权限级别。

全局权限:适用于一个给定服务器中的所有数据库,可以用“*。 *”来表示。

数据库权限:适用于一个给定数据库中的所有数据库对象,可以用“数据库名。·”来表示。

表权限:适用于一个给定表中的所有列,可以用“数据库名,表名”来表示。

列权限:适用于一个给定表中的单一列,可以先用“数据库名,表名”来表示,再在权限名称后加上“[(字段列表)]”可选项,如SELECT(员工ID,姓名)。

子程序权限:适用于给定存储过程或函数,可以用“PROCEDURE|FUNCTION数据库名,过程名”来表示。

③“<用户名'>@<'主机'>”中若“用户名”不存在则添加用户“[IDENTIFIEDBY[PASSWORD]<'新密码'>]”可选项可以设置新用户的密码,若“用户名”已经存在,则此选项可以修改用户的密码。

④“[WITH GRANT OPTION]”可选项表示允许用户将获得的权限授予其他用户。

2.查看用户权限
show grants for "用户名"@"主机号"\G
grant语句创建用户并授权
grant 权限 on 库名.表名 to "用户名"@"主机号"identified by"密码";

权限 create,drop,insert,update, delete, select
grant语句给用户授权
grant 权限 on 库名.表名 to"用户名"@"主机号";
revoke语句回收用户部分权限
revoke 权限 on 库名.表名 from "用户名"@"主机号";
revoke语句回收用户全部权限
revoke all privileges,grant option from "用户名"@"主机号";
(1)使用SHOW GRANTS语句查看授权信息,其语法格式为:

SHOW GRANTS FOR<用户名'>@<'主机>

(2)使用SELECT 语句查看 mysql.user表中用户的全局权限,其语法格式为:

SELECT<权限字段>FROM mysql.user

[WHERE User=<'用户名'>AND Host=<'主机'>];

说明:“mysql.user”表可以查询到用户的全局权限,“<权限字段>”中常用的权限字段Select_priv、Insert_priv、Create_priv等,mysql.db中可以查询到用户的数据库权限。

3.回收用户权限
使用REVOKE语句回收用户权限,其语法格式为:

REVOKE<权限名称>[(字段列表)]ON<对象名>FROM<'用户名'>@<主机>;

说明:REVOKE语句用来取消指定用户的某些指定权限,与GRANT语句类似。

【任务8.3】数据库用户管理
当管理员在MySQL中添加了用户后,因为各种问题可能需要对用户进行改名、修改密码或删除用户来实现对用户的管理。

1.修改用户的名称
使用 RENAME USER 语句可以修改用户的名称,其语法格式为:

RENAME USER <' 旧的用户名'>@<'主机'>TO<'新的用户名'>@<'主机>;

说明:RENAME USER 语句可以对用户进行重命名,该语句可以同时对多个已存在的用户进行重命名,各个用户之间使用逗号分隔,重命名时“旧的用户名”必须已经存在,并且“新的用户名”还不存在,使用者必须拥有“RENAME USER”权限。

2.修改用户的密码
(1)使用mysqladmin命令修改用户密码的语法格式为:mysqladmin-u<用户名> [-h<主机>]-p password[<新密码>]说明:“mysqladmin”是一条外部命令,必须在服务器端的“命令提示符”下执行。
(2)使用SET PASSWORD语句修改用户密码的语法格式为:

SET PASSWORD[FOR<'用户名'>@<'主机'>]=PASSWORD(<'新密码>) ;

说明:SET PASSWORD语句可以修改用户的密码,语句中若不加“[FOR<'用户名'>@<'主机'>]”可选项,则修改当前用户密码。(

3)使用UPDATE语句修改用户密码的语法格式为:

UPDATE mysql.user SET Password=PASSWORD(<'新密码'>)WHERE User=<'用户名'>AND Host=<'主机'>;

说明:“新密码”需要用“PASSWORD()”函数来加密。

3.删除用户
(1)使用DROP USER 语句删除用户的语法格式为:

DROP USER<'用户名'>@<'主机'>;

说明:DROP USER语句可以删除一个或多个普通用户,各用户之间用逗号分隔。如果删除用户已经创建的数据库对象,那么该用户将继续保留。使用者必须拥有“DROP USER”权限。

(2)使用DELETE语句删除用户的语法格式为:

DELETE FROM mysql.user WHERE User=<'用户名'> AND Host=<'主机'>;

说明:使用DELETE语句删除用户时,使用者必须拥有“mysql.user”的“De-lete”权限。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第八章总结(数据库的安全性维护) 的相关文章

  • 22. Spring Boot 整合 MyBatis-Plus

    文章目录 22 1 官方文档22 2 基本介绍22 3 整合 MyBatis Plus 实例22 3 1 需求说明 图解22 3 2 代码实现22 3 2 1 创建数据库和表22 3 2 2 创建 springboot mybatisplu
  • openjudge 1.4.11 晶晶赴约会

    OpenJudge 11 晶晶赴约会 解题思路 xff1a 1 判断晶晶是否可以去约会 xff0c 那么只需要判断输入的日期是否为1 3 5中的任意一个数字即可 2 定义整型变量a并输入 3 If else条件判断 xff0c 并输出对应内
  • HTML制作个人名片

    题目 xff1a 完成以下效果图 xff0c 上传代码和效果图 xff08 具体样式提示如下 xff1a 整个大盒子尺寸为 150 278 效果图居中对齐 xff0c 左右外边距50px 字体 xff1a 楷体 xff1b 2 段落设置 x
  • 原码,反码,补码的概念

    计算机里都是以补码 的形式存储数据 xff0c 电脑只能识别二进制的0和1 xff0c 一个字节 xff08 8位 xff09 为例 原码 xff1a 最高位符号位 xff0c 0代表正数 xff0c 1代表负数 xff0c 非符号位为该数
  • cmake编译opencv开源项目报错问题

    最近使用cmake在编译一个配置了opencv环境的c 43 43 开源项目时遇到如下问题 CMake Warning at D opencv4 OpenCVConfig cmake 176 message Found OpenCV Win
  • 第一个SpringBoot项目的创建

    目录 一 SpringBoot是什么 xff1f 初识springboot springboot的优点 二 SpringBoot项目的创建与简单运行 x1f351 使用idea创建springboot项目 x1f351 Spring Boo
  • 解决在vue3中使用reactive响应式,赋值后造成页面不改变的问题?

    文章目录 场景原因一 例子二 解决方法1 使用ref存储响应式数据2 在reactive中使用对象包裹要改变的数据3 for of循环push到reactive数据中 xff0c 不破坏数据结构 总结 场景原因 我们需要在vue3中使用服务
  • ubuntu交叉编译工具arm-linux-gcc安装

    1 安装交叉编译工具 xff1a arm linux gcc 安装包4 4 6 TQ210 release 20120720 tar bz2 环境 xff1a ubuntu 20 版 xff0c 已换清华源 1 1解压文件 提取解压1 1
  • MYSQL(1)----初阶

    一 新增 insert into 表名 values 列的值 xff0c 列的值 xff0c 列的值 xff0c 列的值 insert into 表名 字段1 xff0c 字段2 values 列的值 xff0c 列的值 列的值 xff0c
  • GitLab -- 创建新用户

    登录GitLab xff0c 点击最上面的扳手图标 xff0c 进入 管理区域 页面 xff0c 点击 新建用户 进入新建用户页面 xff0c 输入对应信息 信息确认后 xff0c 点击 创建用户 用户创建成功后 xff0c 点击 编辑 按
  • debian技能大赛 笔记 (一)静态IP 网卡重启

    一 Debian静态IP 1 使用vim打开 etc network interfaces配置文件 vim etc network interfaces 2 在配置文件里添加 auto 网卡号 allow hotplug 网卡号 iface
  • Debian技能大赛笔记(二)service 、systemctl等命令消失不见解决办法

    二 service systemctl等命令消失不见解决办法 1 使用命令进入root模式 wt 64 Rserver su root Password root 64 Rserver home wt 2 使用vim 使用vi或者nano都
  • debian技能大赛笔记(八)创建DISK RAID5 自动挂载

    一 问题 1 在虚拟机上添加四个1g的硬盘 2 创建raid5 其中一个作为热备盘 设备名为 md0 3 将md0设置为LVM 设备名为md0 4 格式化为ext4 文件系统 5 开机自动挂载到 data目录 添加硬盘 添加完几个硬盘虚拟机
  • Debian大赛笔记(十)修改系统语言

    1 在root用户下输入 dpkg reconfigure locales 选择ZH CN xff08 简体中文 xff09 按空格键选择 xff0c 选择成功后重启系统语言便会修改成功
  • Debian技能大赛笔记(11)欢迎信息内容配置 删除欢迎信息

    技能大赛里都有一个差不多的题就是做一个欢迎信息 大致就像下图 那怎么配置呢 1 进入配置文件 vim etc update motd d 10 uname 在配置文件里加入 uname snrvm printf n printf 2s Ch
  • 上班摸鱼看小说的最佳软件

    这个软件几乎满足了我对上班摸鱼的所有担忧 xff0c 比如上班的时候打开网页看下说 xff0c 那太明显了 xff0c 不说摄像头 xff0c 后台看一下浏览器历史记录就暴露的特别明显 xff0c 这合适吗 xff1f 老板来到你身后远远的
  • iOS-UI-导航控制器-导航栏

    文章目录 导航控制器导航控制器的基本创建方法导航控制器的基本框架如下图所示添加单个按钮 x1f518 添加多个按钮 x1f518 创建按钮数组导航控制器效果 导航控制器的切换VcRoot界面切换事件函数 导航控制器 导航控制器 xff1a
  • 【iOS开发】-UIViewController加载过程和生命周期

    文章目录 前言ViewController执行过程的探讨ViewControllerOne 函数介绍顺序引入ViewControllerSecond引入 ViewControllerOne点击执行到ViewControllerSecond的
  • 【C语言】魔方阵的实现(最全)

    魔方阵的实现 xff08 最全 xff09 一 什么是魔方阵 xff1f 魔方矩阵 xff0c 又称幻方 xff0c 是具有相同的行数和列数 xff0c 并在每行每列 对角线上的和都相等的矩阵 N阶幻方 xff0c 即将自然数1到排成N行N
  • 四种求最大公约数的算法 C / C++

    文章目录 前言一 辗转相除法1 算法简介2 算法描述3 代码及复杂度 二 穷举法 xff08 枚举法 xff09 1 算法简介2 算法描述3 代码及复杂度 三 更相减损法1 算法简介2 算法描述3 代码及复杂度 四 Stein算法 xff0

随机推荐

  • 安装使用supervisor来启动服务

    supervisor 使用方法 supervisor 官网 是一个unix的系统进程管理软件 xff0c 可以用它来管理apache nginx等服务 xff0c 若服务挂了可以让它们自动重启 当然也可以用来实现golang的守护进程 学完
  • 超详细讲解实现拓扑排序、关键路径

    今天 xff0c 小编带着大家来学习图中非常重要的一环 xff0c 拓扑排序和关键路径 xff01 目录 一 绪论 实际应用 二 拓扑排序 xff08 一 xff09 含义 xff08 二 xff09 实现原理 xff08 三 xff09
  • getline函数介绍

    今天 xff0c 小编将为大家讲解有关getline函数的相关知识 目录 一 cin getline char s streamsize n char delim 二 getline istream amp is string amp st
  • C++语法——详解运算符重载

    运算符重载是C 43 43 的一个重要特性 有了运算符重载 xff0c 在代码编写时能更好的实现封装 目录 一 运算符重载介绍 二 运算符重载形式 xff08 一 xff09 参数 xff08 二 xff09 返回值 xff08 三 xff
  • linux—常用gdb调试命令汇总

    目录 一 准备工作 二 调试命令 xff08 一 xff09 查看代码内容 xff08 l xff08 二 xff09 开始调试 xff08 r xff09 xff08 三 xff09 查看当前调试位置 xff08 where xff09
  • Linux——详细模拟实现shell(进程控制综合运用)

    在运行linux时 xff0c 我们总免不了需要输入各种指令让shell进行解析 xff0c 从而与系统进行交互 那么我们有没有可能自己自制一个简易的shell呢 xff1f 答案是当然没问题 目录 一 大体思路 二 具体实现 xff08
  • C++语法——详解虚继承

    目录 一 什么是虚继承 二 虚继承原理 三 虚继承使用注意事项 一 什么是虚继承 所谓虚继承 xff08 virtual xff09 就是子类中只有一份间接父类的数据 该技术用于解决多继承中的父类为非虚基类时出现的数据冗余问题 xff0c
  • Qt——基本介绍、详解对象树

    目录 一 基本介绍 二 对象树 一 基本介绍 创建qt项目是 xff0c 如果选择空窗口QWidget xff0c 那么mian函数中会有如下代码 xff1a include 34 myWindow h 34 include lt QApp
  • 项目:手把手实现高并发内存池

    一 前言 xff08 一 xff09 项目简介 高并发内存池 xff08 ConCurrentMemoryPool xff09 xff0c 其原型是google的开源项目tcmalloc 全称是t hread c ache malloc x
  • Linux——TCP协议与相关套接字编程

    一 TCP协议概念 与UDP协议相同 xff0c TCP协议也是应用在传输层 的协议 虽然都是应用在传输层 xff0c 但是使用方式和应用场景上大不一样 TCP协议具有 xff1a 有连接 xff08 可靠 xff09 面向字节流的特点 x
  • C++ Primer笔记——排列算法(next_permutation、prev_permutation、is_permutation)

    目录 概述 next permutation prev permutation is permutation 概述 页数 xff1a P778 xff08 A 2 7 排列算法 xff09 头文件 xff1a lt algorithm gt
  • Ubuntu更改JupyterLab的工作目录

    1 第一步 jph 64 jph opt anaconda3 jupyter lab generate config Writing default config to home jph jupyter jupyter lab config
  • 项目5 创建与使用视图

    1 简单化 视图不仅可以简化用户对数据的理解 xff0c 也可以简化对数据的操作 那些被经常使用的查询定义为视图 xff0c 从而使用户在以后的操作中不必每次都指定全部的条件 2 安全性 通过视图用户只能查询和修改他们所能见到的数据 xff
  • 第五章习题(1)

    int main int k x for k 61 0 x 61 0 k lt 61 9 amp amp x 61 10 k 43 43 x 61 x 43 2 printf 34 d d 34 k x return 0 习题2 int m
  • 数据库表的约束

    单字段主键 create table表名 字段名1数据类型1comment 34 备注信息1 34 primary key 字段名2数据类型2comment 34 备注信息2 34 create table teacher no varch
  • 数据库第三次作业

    如下表新增数据 xff1a 教师表 teacher 指定字段插入数据 教师号 教师姓名 职称 工资 岗位津贴 T1 Anne Professor 5000 2000 T2 Adam 2000 T3 Alan Associate Profes
  • 数据库第七次作业

    更新教师表中所有记录 xff0c 将津贴改为2000 更新教师表中教师号在T5到T8之间的记录 xff0c 将津贴改为1500 更新授课表中周数为8的记录 xff0c 将教师号改为T7 xff0c 课程号改为C1 更新课程表中课时数不在45
  • 第六章总结(创建与使用存储过程)

    一 MySQL的存储过程 xff08 1 存储过程是一组为了完成特定功能的SQL语句块 xff0c 经编译后存储在数据库中 xff0c 用户通过指定存储过程的名称并给定参数 xff08 如果该存储过程带有参数 xff09 来调用并执行它 x
  • 第七章总结(创建与使用触发器)

    定义 xff1a 触发器是特殊的存储过程 xff0c 是一个被指定关联到数据表上的数据库对象 xff0c 可以看作数据表定义的一部分 xff0c 可用于实现数据库中数据的完整性 普通的存储过程通过Call命令调用 xff0c 而触发器的调用
  • 第八章总结(数据库的安全性维护)

    insert语句创建用户 insert into user hostuser passwordssl cipherx509 issuer x509 subject values 34 主机号 34 xff0c 34 用户名 34 xff0c