super 有哪些权限 mysql

发布网友 发布时间:2022-04-23 07:28

我来回答

5个回答

热心网友 时间:2022-04-26 15:04

项目上 MySQL 还原 SQL 备份经常会碰到一个错误如下,且通常出现在导入视图、函数、存储过程、事件等对象时,其根本原因就是因为导入时所用账号并不具有SUPER 权限,所以无法创建其他账号的所属对象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常见场景:1. 还原 RDS 时经常出现,因为 RDS 不提供 SUPER 权限;2. 由开发库还原到项目现场,账号权限等有所不同。

处理方式:

1. 在原库中批量修改对象所有者为导入账号或修改 SQL SECURITY 为 Invoker;2. 使用 mysqlmp 导出备份,然后将 SQL 文件中的对象所有者替换为导入账号。
二、问题原因我们先来看下为啥会出现这个报错,那就得说下 MySQL 中一个很特别的权限控制机制,像视图、函数、存储过程、触发器等这些数据对象会存在一个 DEFINER 和一个 SQL SECURITY 的属性,如下所示:

三、改写内容上述这个 DEFINER 问题,个人想到最简单的解决方式就是 mysqlmp 导出时直接摘除掉相关属性,但是 mysqlmp 本身并不提供对应参数,所以比较蛋疼,无论是原库走脚本变更或是备份后修改 SQL 文件都不是非常方便,尤其是触发器的 DEFINER,只能先 DROP 再 CREATE 才可以变更。只能看下是否可以从 mysqlmp 源码中去掉 DEFINER 定义。本次 mysqlmp 改写主要有 2 个目的:1. 摘取备份中视图、函数、存储过程、触发器等对象的 DEFINER 定义;2. 尝试加上比较简单的备份进度显示(原生 mysqlmp 的 verbose 参数不是非常清晰,想要实现 navicate 备份时的那种行数显示)。

改写好处:1. 可以避免还原时遇到 DEFINER 报错相关问题;2. 根据输出信息知道备份是否正常进行,防止备份中遇到元数据锁无法获取然后一直卡住的情况。

热心网友 时间:2022-04-26 16:22

会儿的权限是很大的,在super里面呢是表示的是非常极致的意思,那么super权限再买。Spare的里头呢还是非常强大的,所以你在这里面呢进行一些的选择就可以啦。

热心网友 时间:2022-04-26 17:56

MySQL各种权限(共27个) (以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。) 1. usage 连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。

热心网友 时间:2022-04-26 19:48

一般来说,是怕里面的很多权限相对来说抓,你购买了会员都是可以使用的。

热心网友 时间:2022-04-26 21:56

这个有阅读读取和这个访问的这个权限,一般来说是可以的,一般可以写这个mysql这样的程程序目

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com