当前位置: 首页 > news >正文

MySQL 权限分配

有时候,您需要查看某个用户被授予的权限以便复核。

MySQL 允许您使用 SHOW GRANTS 语句来显示分配给用户帐户或角色的权限。

MySQL SHOW GRANTS 语句介绍

以下是 SHOW GRANTS 语句的基本语法:

SHOW GRANTS
[FOR {user | role}
[USING role [, role] ...]]

在这个语法中:

  • 首先,在 FOR 关键字后指定要显示先前授予用户帐户或角色的权限的用户帐户或角色的名称。如果跳过 FOR 子句,则 SHOW GRANTS 返回当前用户的权限。
  • 其次,使用 USING 子句检查与用户角色相关的权限。您在 USING 子句中指定的角色必须事先授予用户。

除了可以显示当前用户的权限和角色,要执行 SHOW GRANTS 的语句,你需要有 mysql 系统数据库的 SELECT 权限。

MySQL SHOW GRANTS 实例

让我们举一些使用 MySQL SHOW GRANTS 语句的例子。

显示授予当前用户的权限

以下语句使用 SHOW GRANTS 语句显示授予当前用户的权限:

SHOW GRANTS;

它等效于以下语句:

SHOW GRANTS FOR CURRENT_USER;

SHOW GRANTS FOR CURRENT_USER();

CURRENT_USER 和 CURRENT_USER() 都返回当前用户。

显示授予用户的权限

这个实例演示了创建用户、授予权限、查看权限的完整步骤。

  1. 创建一个名为 sqlizdb 的新数据库:

    CREATE DATABASE sqlizdb;
    
  2. 选择数据库 sqlizdb :

    USE sqlizdb;
    
  3. 在数据库 sqlizdb 中新建一个表 test_table

    CREATE TABLE test_table(id int AUTO_INCREMENT PRIMARY KEY,txt varchar(100) NOT NULL
    );
    
  4. 创建一个新用户,名为 sqliz@'%' :

    CREATE user sqliz@'%' IDENTIFIED by 'SqLiZ9879123!';
    
  5. 显示授予用户 sqliz@'%' 的默认权限:

    SHOW GRANTS FOR sqliz@'%';
    
    +-----------------------------------+
    | Grants for sqliz@%                |
    +-----------------------------------+
    | GRANT USAGE ON *.* TO `sqliz`@`%` |
    +-----------------------------------+

    GRANT USAGE 是没有权限的代名词。默认情况下,当新用户创建时,它没有权限。

  6. 将 sqlizdb 数据库的所有权限授予用户 sqliz@'%' :

    GRANT ALL PRIVILEGES ON sqlizdb.* TO sqliz@'%';
    
  7. 最后,显示授予用户的权限 sqliz@'%' :

    SHOW GRANTS FOR sqliz@'%';
    
    +----------------------------------------------------+
    | Grants for sqliz@%                                 |
    +----------------------------------------------------+
    | GRANT USAGE ON *.* TO `sqliz`@`%`                  |
    | GRANT ALL PRIVILEGES ON `sqlizdb`.* TO `sqliz`@`%` |
    +----------------------------------------------------+

显示授予角色的权限

本实例演示了创建角色、授予角色权限、查看角色权限的完整步骤。

  1. 创建一个新角色,名为 write_role@'%' :

    CREATE ROLE write_role@'%';
    
  2. 显示授予角色的权限 write_role@'%' :

    SHOW GRANTS FOR write_role@'%';
    
    +----------------------------------------+
    | Grants for write_role@%                |
    +----------------------------------------+
    | GRANT USAGE ON *.* TO `write_role`@`%` |
    +----------------------------------------+
  3. 授予 write_role@'%' 在 sqlizdb 数据库上的 SELECT, INSERT, UPDATE,和 DELETE 权限:

    GRANT SELECT, INSERT, UPDATE, DELETE ON sqlizdb.* TO write_role@'%';
    
  4. 显示授予角色的权限 write_role@'%' :

    SHOW GRANTS FOR write_role@'%';
    
    +-------------------------------------------------------------------------+
    | Grants for write_role@%                                                 |
    +-------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO `write_role`@`%`                                  |
    | GRANT SELECT, INSERT, UPDATE, DELETE ON `sqlizdb`.* TO `write_role`@`%` |
    +-------------------------------------------------------------------------+

D) 显示用户与角色关联的权限

本实例演示了创建用户、分配角色、显示权限的详细步骤。

  1. 创建一个名为 sqliz2@'%'的新用户帐户:

    CREATE user sqliz2@'%' IDENTIFIED by 'SqLiZ9879123!';
    
  2. 授予 EXECUTE 权限给用户 sqliz2@'%'

    GRANT EXECUTE ON sqlizdb.* TO sqliz2@'%';
    
  3. 将角色 write_role@'%' 授予用户 sqliz2@'%'

    GRANT write_role@'%' TO sqliz2@'%';
    
  4. 显示授予用户的权限 sqliz2@'%' :

    SHOW GRANTS FOR sqliz2@'%';
    
    +----------------------------------------------+
    | Grants for sqliz2@%                          |
    +----------------------------------------------+
    | GRANT USAGE ON *.* TO `sqliz2`@`%`           |
    | GRANT EXECUTE ON `sqlizdb`.* TO `sqliz2`@`%` |
    | GRANT `write_role`@`%` TO `sqliz2`@`%`       |
    +----------------------------------------------+
  5. 最后,使用 SHOW GRANTS 语句中的 USING 子句来显示与 write_role@'%' 角色关联的权限:

    SHOW GRANTS FOR sqliz2@'%' USING write_role@'%';
    
    +------------------------------------------------------------------------------+
    | Grants for sqliz2@%                                                          |
    +------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO `sqliz2`@`%`                                           |
    | GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON `sqlizdb`.* TO `sqliz2`@`%` |
    | GRANT `write_role`@`%` TO `sqliz2`@`%`                                       |
    +------------------------------------------------------------------------------+

结论

在 MySQL 中,您可以使用 SHOW GRANTS 语句显示授予用户或角色的权限。

相关文章:

MySQL 权限分配

有时候,您需要查看某个用户被授予的权限以便复核。 MySQL 允许您使用 SHOW GRANTS 语句来显示分配给用户帐户或角色的权限。 MySQL SHOW GRANTS 语句介绍 以下是 SHOW GRANTS 语句的基本语法: SHOW GRANTS [FOR {user | role} [USING role [, role] .…...

基于PHP的医药博客管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的医药博客管理系统 一 介绍 此医药博客系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。用户可注册登录,查看/评论/搜索博客,建议留言。管理员可对用户&a…...

spark SQLQueryTestSuite sql 自动化测试用例

把SQL 添加到自动化测试用例。 ./sql/core/src/test/resources/sql-tests/inputs 目录存放原始的SQL. ./sql/core/src/test/resources/sql-tests/results存放SQL的执行结果。在执行测试时,根据最新生成的结果和 ./sql/core/src/test/resources/sql-tests/results 进…...

Taro小程序隐私协议开发指南填坑

一. 配置文件app.config.js export default {...__usePrivacyCheck__: true,... }二. 开发者工具基础库修改 原因:从基础库 2.32.3 开始支持 修改路径:详情->本地设置->调试基础库 三. 用户隐私保护指引更新 修改路径:mp后台->设…...

iOS App上传到苹果应用市场构建版本的图文教程

使用hbuilderx的h5或uniapp框架写的前端,进行云打包ios应用,会生成一个ipa后缀的应用文件。这个文件是没有办法像安卓应用那样直接安装在手机上面的。需要上架到苹果应用商店,用户才能下载安装使用。 因此,我们这篇文章讲详细介绍…...

paddle框架的使用

Paddle是由百度开发的深度学习框架,支持声明式和命令式编程风格。它还支持深度神经网络的超大规模训练和神经架构的自动设计。您可以使用 Paddle 构建用于训练的神经网络模型,具体步骤如下: 导入桨模块和其他必要的模块,如numpy&…...

Spring Boot + Vue的网上商城之基于element ui后台管理系统搭建

Spring Boot Vue的网上商城之基于element ui后台管理系统搭建 在本篇博客中,我们将使用Spring Boot和Vue来构建一个基于element ui的后台管理系统。我们将详细介绍每个步骤,并提供完整的代码示例,包括配置文件和组件。此外,我们…...

Linux基础入门

一、操作系统安装方法 1、使用u盘安装 工具&#xff08;前提条件&#xff09;&#xff1a; <1>u盘 <2>镜像文件iso/msdn.itellyou.cn <3>把u盘做成PE&#xff1a;大白菜/老毛桃/winPE/软碟通/ultralSO 设置BIOS&#xff1a;通过u盘启动 安装系统&…...

Unity工具——LightTransition(光照过渡)

需求描述 在游戏中&#xff0c;开发者为了让玩家更直接地看到待拾取的物品从而为其添加一种闪烁效果&#xff0c;或者模拟现实中闪烁的灯光效果&#xff0c;我能够想到的一种方案则是通过控制光照强度来实现&#xff0c;那么本篇文章我们就尝试通过这个方案来实现一下&#xff…...

【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 0. 设置中文字体 1-5. 折线图、散点图、柱状图、直方图、饼图 6. 箱线图&#xff08;Box Plot&#xff09; 7. 热力图&#xff08;Heatmap&#xff09; 8. 面积图&#xff08;Area Plot&#xff09; 9. 等…...

IMU+摄像头实现无标记运动捕捉

惯性传感和计算机视觉的进步为在临床和自然环境中获得精准数据带来了新可能。然而在临床应用时需要仔细地将传感器与身体对齐&#xff0c;这减慢了数据收集过程。 随着无标记运动捕捉的发展&#xff0c;研究者们提出了一个新的深度学习模型&#xff0c;利用来自视觉、惯性传感…...

前后端分离,JSON数据如何交互

如何接收&#xff1a; 在配置文件商法加上相应注解 EnableWebMvc 在接收的路径上加上RequestBody注解 注解的作用&#xff1a;在Spring框架中&#xff0c;RequestBody注解用于将HTTP请求的body中的内容转换为Java对象&#xff0c;并将其作为参数传递给控制器方法。它通常用…...

docker中已创建容器的修改方法

环境信息以CentOS8为例 停止容器 #docker stop 容器名或id docker stop mysql停止docker服务 systemctl stop docker修改docker配置文件 配置文件在&#xff1a; /var/lib/docker/containers/{容器id} 如&#xff1a;/var/lib/docker/containers/92acfba87567bcca981ad17c0e…...

uniapp中video播放视频上按钮没显示的问题

video标签层级很高&#xff0c;尝试了添加z-index&#xff0c;但无效果 通过查阅资料&#xff0c;得知cover-view层级比video层级高 效果图 需求是为了使直播时&#xff0c;可选是原画/流畅 解决方案 首先&#xff0c;在pages.json中配置右上角的图标 {"path" : …...

docker学习:dockerfile和docker-compose

学习如何使用dockerfile 以下内容&#xff0c;部分来自gpt生成&#xff0c;里面的描述可能会出现问题&#xff0c;但代码部分&#xff0c;我都会进行测试。 1. 需求 对于一个docker&#xff0c;例如python&#xff0c;我们需要其在构建成容器时&#xff0c;就有np。有以下两种方…...

Pycharm 配置python项目本地运行环境

1.打开Pycharm,打开Setting 2. 新建本地环境 3.如果报错如上图所示&#xff0c;请通过cmd来新建本地环境&#xff0c;具体步骤如下 在对应的代码路径下&#xff0c;通过virtualenv venv来创建虚拟路径 安装好之后&#xff0c;安装对应的依赖包即可 pip3 install -r ./require…...

DevEco Studio中如何设置HarmonyOS/OpenHarmony应用开发

DevEco Studio内置有帮助中心&#xff0c;初学HarmonyOS 及OpenHarmony应用、元服务的开发者&#xff0c;通过内置的帮助中去系统的学习相关内容&#xff0c;是边练边学&#xff0c;快速上手的最佳方式。 一、帮助 二、快速开始 三、HarmonyOS应用、元服务开发相关 四、OpenHa…...

Matlab图像处理-三原色

三原色 根据详细的实验结果&#xff0c;人眼中负责颜色感知的细胞中约有65%对红光敏感&#xff0c;33%对绿光敏感&#xff0c;只有2%对蓝光敏感。正是人眼的这些吸收特性决定了所看到的彩色是一般所谓的原色红&#xff08;R&#xff09;、绿&#xff08;G&#xff09;和蓝&…...

QLExpress代码解读,运行原理解析

简介&#xff1a; 本文针对上图的功能详细图&#xff0c;进行逐个的简单介绍&#xff1a;代码入口、代码的主要逻辑和算法。 调用代码实例 //本文以helloworld案例,开启了两个打印日志的参数&#xff0c;实际使用通常不建议打开。 boolean printParseLog true;//语法分析日志开…...

M1 Mac创建虚拟环境遇到的问题

报错信息 PackagesNotFoundError: The following packages are not available from current channels: python3.7 Current channels: https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/osx-arm64 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch htt…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...