MySQL--基础--1.1--命令--grant

2023-11-17

MySQL–基础–1.1–命令–grant


1、基本语法:

grant 权限 on 数据库对象 to 用户 [identified by 密码]
revoke 权限 on 数据库对象 from 用户;
  1. 用户:一般格式是:用户名@IP
    1. IP有时候会写%,%是个通配符,%必须加上引号
      1. 如果Host=192.168.1.%,表示 只要是IP地址前缀为"192.168.1." 的IP都可以连接
      2. 如果Host=%,表示 所有IP都有连接权限
      3. '%'不包括localhost,要单独对@'localhost’进行赋值

2、普通用户

  1. 针对testdb库中的所有表数据,appuser用户
  2. 权限
    1. 查询
    2. 插入
    3. 更新
    4. 删除
 
grant select, insert, update, delete on testdb.* to appuser@'%'

3、开发人员

创建表、索引、视图、存储过程、函数。。。等权限

3.1、创建、修改、删除,数据表结构权限

grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';


3.2、操作 外键权限。

grant references on testdb.* to developer@'192.168.0.%';

3.3、操作 临时表权限。

grant create temporary tables on testdb.* to developer@'192.168.0.%';

3.4、操作 索引权限。

grant index on testdb.* to developer@'192.168.0.%';

3.5、操作 视图、查看视图源代码 权限。

grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';

3.6、操作 存储过程、函数 权限。

grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status

grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure

grant execute on testdb.* to developer@'192.168.0.%';

4、普通 DBA 管理某个数据库的权限。

# 关键字 privileges 可以省略
grant all privileges on testdb to dba@'localhost'

5、高级 DBA 管理 MySQL 中所有数据库的权限。

grant all on *.* to dba@'localhost'

6、grant 权限,分别可以作用在多个层次上。

6.1、grant 作用在整个 MySQL 服务器上:

grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。
grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库

6.2、grant 作用在单个数据库上:

grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。

6.3、grant 作用在单个数据表上

grant select, insert, update, delete on testdb.orders to dba@localhost;

给一个用户授权多张表时,可以多次执行以上语句。例如:

grant select, insert, update, delete on testdb.orders to dba@localhost;
grant select, insert, update, delete on testdb.user to dba@localhost;

6.4、grant 作用在表中的列上:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

6.5、grant 作用在存储过程、函数上:

grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'

7、查看 用户权限

7.1、查看当前用户(自己)权限:

show grants;

7.2、查看其他 MySQL 用户权限:

show grants for dba@localhost;

8、撤销已经赋予给用户权限的权限。

revoke 跟 grant 的语法差不多,只需要把关键字 to 换成 from 即可:

grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;

9、 grant、revoke 用户权限注意事项

  1. grant,revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
  2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 grant option
    1. 这个特性一般用不到,实际中,数据库权限最好由 DBA 来统一管理。
    grant select on testdb.* to dba@localhost with grant option;
    
  3. 授权完成后,需要执行 FLUSH PRIVILEGES 语句。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL--基础--1.1--命令--grant 的相关文章

  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • MySQL 排序顺序 - 排序规则?

    我在对 MySQL 中的 char 字段进行排序时遇到困难 问题是重音字符与非重音字符混淆 例如 Abc bd Acc 我认为这可能与整理有关 所以我将表格的排序规则更改为utf8 ut8 bin 看完之后这个帖子 https stacko
  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • 自动化测试用例设计实例

    在编写用例之间 笔者再次强调几点编写自动化测试用例的原则 1 一个脚本是一个完整的场景 从用户登陆操作到用户退出系统关闭浏览器 2 一个脚本脚本只验证一个功能点 不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3 尽量只做功能中正向
  • 2022年全新Java学习路线图,含源码+笔记

    简洁版本Java学习路线 Java SE基础 gt Java Web gt Maven gt Git gt SSM框架 gt MybatisPlus gt Spring Boot gt 传智健康 医疗行业 gt Spring Cloud g
  • TLS 安全设置未设置为默认设置,这也可能导致此错误。

    edge浏览器打开网页时打示 TLS 安全设置未设置为默认设置 这也可能导致此错误 如图 此时可以通过启用TLS功能处理该问题 控制面板 Internet选项 高级 如图 启用TLS功能后刷新页面或重启浏览器 之后就不会提示之前的报错了
  • ctfshow-萌新-web1( 利用intval函数的特性获取敏感数据)

    ctf show 萌新模块的web1关 这一关考察的是intval 函数转换字符串时的特性以及SQL的拼接绕过 这一关直接就给了源码 并提示我们 id 1000 时 就是flag 先分析一下源码 首先是 intval 函数将参数id转换为数
  • Educoder---计算机系统基础-----计算机系统2.1测试

    1 5 B C A D C 6 10 D C B C B 10题讲解过程 在8位寄存器中存放补码表示的数0FEH 算术左移一位后 其十六进制代码是 A 0FFH B 0FCH C 7CH D 7EH 我是谁 a student a skat
  • 43_iPhone如何查看idfa

    今天工作时 需要帮一位同事查看iPhone的idfa 然后通过idfa做一些定向操作 网上查了十几分钟 一直没有找到合适的方法 最后找到一个对我来说非常简单的方法 很快就找到了我们需要的idfa 在这里记录一下思路 并不做详细解释 懂的人自
  • 【第10篇】MobileNets:用于移动视觉应用的高效卷积神经网络

    MobileNets 用于移动视觉应用的高效卷积神经网络 文章目录 MobileNets 用于移动视觉应用的高效卷积神经网络 摘要 一 简介 二 前期工作 三 MobileNet 架构 3 1 深度可分离卷积 3 2 网络结构和训练 3 3
  • Python爬虫,京东自动登录,在线抢购商品

    京东抢购 Python爬虫 自动登录京东网站 查询商品库存 价格 显示购物车详情等 可以指定抢购商品 自动购买下单 然后手动去京东付款就行 chang log 2017 03 30 实现二维码扫码登陆 2017 06 27 Golang版J
  • 飞哥送书第二期:充能书单|618,买什么都不如买知识!

    您好 我是码农飞哥 wei158556 感谢您阅读本文 欢迎一键三连哦 1 Python基础专栏 基础知识一网打尽 9 9元买不了吃亏 买不了上当 Python从入门到精通 2 毕业设计专栏 毕业季咱们不慌忙 几百款毕业设计等你选 3 Py
  • python多进程服务高可用

    python多进程服务高可用 目的 实现方式 出现的问题 尝试思路 问题产生原因 问题解决方式 目的 多进程服务高可用目的暂定为两个 任务超时 计算超时 或者内部死锁 会出现timeout 任务计算失败 子进程挂掉 比如动态基线卡爆子进程
  • 【目标检测】40、CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection

    文章目录 Abstract 1 Introduction 2 Related work Anchor based approach Anchor free Approach 3 CentripetalNet 3 1 Centripetal
  • [股票预测]基于BP神经网络的股票行情预测

    目录 一 数据集介绍 1 输入数据 XRHJDataInput mat 2 目标数据 XRHJDataTarget mat 3 预测数据 newdata pre18 mat 二 模型训练 1 训练过程 2 Matlab程序代码 三 网络训练
  • Java中switch……case穿透、死循环以及break、return、continue知识点

    一 Java中switch case穿透 1 定义 在switch语句中 如果case控制的语句体后面不写break 将出现穿透现象 在不判断下一个case值的情况下 向下运行 直到遇到break 或者整体switch语句结束 2 case
  • jquery.print.js打印页面时,多分出一页

    可能是要打印的元素 有内边距和外边距 可以设置 margin 0 padding 0 border 0
  • 最新芒果TV视频下载方法-马赛克视频助手

    芒果TV是一款资源丰富的互联网视频平台 它除了可以看视频外 还可以将这些视频下载下来 但官方是不支持视频下载的 那么芒果TV该怎么下载视频么 接下来就让我们一起去看看吧 今天小编就教大家如何把上面喜欢的视频下载下来 1 这里我们需要用到一个
  • 通过Keil如何查看MCU的RAM与ROM使用情况

    概述 在很多偏门MCU 还是使用keil进行开发 开发过程中能免会出现ram rom不够问题 怎么查看呢 下面揭晓答案 一 查看方式 1 编译后 2 通过map查看 方法很简单 鼠标对准红色圈 双击即可 有时 双击不了 只要按照上图配置 此
  • kubernetes集群更新证书(kubeadm方式)

    一 kubernets证书详情 1 查看证书 tree etc kubernetes pki etc kubernetes pki apiserver crt apiserver etcd client crt apiserver etcd
  • RK3399-查看系统温度

    上面是我的微信和QQ群 欢迎新朋友的加入 安装工具 sudo apt install lm sensors 测试效果 root FriendlyELEC sensors gpu thermal virtual 0 Adapter Virtu
  • 栈和队列简介

    栈和队列简介 栈和队列是两种常用的数据结构 它们的数据是按线性结构存储的 因此 栈和队列也属于线性表 栈和队列的数据可以存储在一个顺序表里 也可以存储在一个链表里 只要满足线性存储结构就行 只对数据的线性结构有要求 对存储数据的具体结构并不
  • MySQL--基础--1.1--命令--grant

    MySQL 基础 1 1 命令 grant 1 基本语法 grant 权限 on 数据库对象 to 用户 identified by 密码 revoke 权限 on 数据库对象 from 用户 用户 一般格式是 用户名 IP IP有时候会写