一.问题描述:

开发人员反应xx物流系统mysql查询视图提示权限不足,请DBA介入处理.

MariaDB [abc]> select * from c_time;

ERROR 1045 (28000): Access denied for user 'lsa'@'%' (using password: YES)

版本:mariadb 10.1.18 for centos 6.6

二.问题分析:

查看lsa'@'%帐号权限如下:

MariaDB [(none)]> show grants for lsa @'%';

+--------------------------------------------------------------------------------------------------------+

| Grants for lsa@% |

+--------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'lsa'@'%' IDENTIFIED BY PASSWORD 'xxxxxxxx' |

| GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE, SHOW VIEW ON `abc`.* TO 'lsa'@'%' |

+--------------------------------------------------------------------------------------------------------+

以上说明已存在show view查询视图的权限,为啥还报这个错,是否为开发人员操作不当引起,如是dba亲自验证用lsa帐号登入查询视图试试,确认问题存在,猜想难道是show view权限

不生效引起,如是,重新刷新权限:

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

经过权限刷新操作后,问题还是依然存在,如下:

MariaDB [abc]> select * from c_time;

ERROR 1045 (28000): Access denied for user 'lsa'@'%' (using password: YES)

用lsa帐号查询其它表都正常,用mysql的root帐号登入查询视图,此时报错又不一样:

MariaDB [(none)]> use abc

Database changed

MariaDB [abc]> select count(*) from c_time;

ERROR 1449 (HY000): The user specified as a definer ('abcadmin'@'%') does not exist

不过以上报错提示比较明显,'abcadmin'@'%'帐号不存在这个视图,如是我们查看视图的定义结构:

MariaDB [abc]> show create view c_time\G

*************************** 1. row ***************************

View: c_time

Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`abcadmin`@`%` SQL SECURITY DEFINER VIEW `c_time` AS

............

character_set_client: utf8

collation_connection: utf8_general_ci

1 row in set, 1 warning (0.00 sec)

上面可看出视图的DEFINER为`abcadmin`@`%` ,abcadmin帐号是用于给开发执行ddl操作的,由于自助平台完全代替了手工执行ddl脚本,所以这次迁移到南海就没有再建立abcadmin。

三.问题解决:

上面找到原因后,解决就比较方便。

方法一:建立abcadmin帐号

建立abcadmin帐号后,可以正常查询:

MariaDB [abc]> select count(*) from c_time;

+----------+

| count(*) |

+----------+

| 440069 |

+----------+

1 row in set (0.96 sec)

方法二:修改DEFINER

将DEFINER=`abcadmin`@`%`修改DEFINER=`lsa`@`%`

alter ALGORITHM=UNDEFINED DEFINER=`lsa`@`%` SQL SECURITY DEFINER VIEW `c_time` AS

............

修改definer后,也可正常查询:

MariaDB [abc]> select count(*) from c_time;

+----------+

| count(*) |

+----------+

| 440069 |

+----------+

1 row in set (0.96 sec)

最后权衡分析,我们采用方法二解决问题。

mysql查询没有权限试图_MySQL迁移后提示查询view权限不足的处理相关推荐

  1. UNI-APP_HbuilderX打包出错,本次打包选择了通讯录权限,请完成实名认证后再继续打包,取消通讯录权限打钩,还是提示使用通讯录权限需要实名制

    云端服务器返回错误:本次打包选择了通讯录权限,请完成实名认证后再继续打包!如不需要使用通讯录权限,请在manifest.json页面取消通讯录权限后,重新提交打包.通讯录权限配置:1.App模块配置: ...

  2. @Transactional注解和Mybatis缓存问题(Mybatis 查询结果 List 对List修改后再次查询,结果与数据库不一致)

    Mybatis 查询结果 List 对List修改后再次查询,结果与数据库不一致 使用 Mybatis 查询,结果为对象的 List ,修改List内的参数后,使用相同参数再次查询,发现查询结果与数据 ...

  3. mysql 连接查询两个条件_MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习...

    一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不可能把所有的数据都放到一张表里面,肯定要分表来存数据,这样节 ...

  4. mysql建库需要权限吗_mysql 建库报匿名用户权限错误

    ERROR 1044 (42000): Access denied for user [email protected] to database 'meitu' 系统环境: Centos 7.5 My ...

  5. mysql时间字段不走索引_MySQL使用=或=范围查询时不走索引

    2020-02-27 最近一个日志页面查询很慢,然后去跟踪了查询sql,发现日期字段上即使建了索引,查询还是很慢,执行语句还是使用了全表扫描,于是继续分析下去. 查询语句类似: select * fr ...

  6. Android位置权限拒绝多次后,Android M中权限被拒绝时该如何处理

    M的开发者预览版2现在包含了一个运行时权限的新方法:Activity.shouldShowRequestPermissionRationale(). 它告诉你的app在实际显示权限对话框之前是否显示一 ...

  7. win10你需要计算机管理员提供的权限才能操作,解决win10提示“你需要权限能才能执行此操作”的方案...

    不知道大家在使用win10电脑的时候有没有遇到过这种情况,每次需要删除或是对某一文进行重命名的时候都会遇到系统提示:"你需要权限能才能执行此操作"!这样的操作在电脑系统中就需要使用 ...

  8. mysql 分库查询_mysql分库后怎么查询

    分库分表的策略,依项目需求而定,这里采用的是常规的做法:根据取模的方式,假设我们水平分库2个,每个库又水平拆表2个 既总共有4个表,查询的时候默认没有按照其他的条件进行排序,假设我们要查询第41页的数 ...

  9. mysql事务模式怎么查_Mysql InnoDB中的查询事务模式与锁定select ..for update

    在 InnoDB 的行锁中使用所谓的 next-key locking.这就意味着,除了索引记录外,InnoDB 还可以锁定该索引记录前部"间隙" ('gap') 以阻塞其它用户在 ...

最新文章

  1. html中legend设置大小,HTML_如何给 legend 标签设定宽度,我们在做表单的时候经常会使 - phpStudy...
  2. 干货!用大白话告诉你什么是Mock测试
  3. hdu4825 字典树 + 贪心
  4. laravel controller
  5. Adempiere 在Ubuntu下的安装方法(二)
  6. Struts2的通配符配置方式
  7. Android简单的TXT文件存储
  8. Lingo解决最优化问题
  9. MBlock-scartch开发环境搭建
  10. 浅谈非数学类全国大学生数学竞赛
  11. imagecopyresampled要生成彩色却生成了灰色图片
  12. 【mind+ Maixduino用户库】NES 游戏扩展库
  13. Linux服务器配置静态IP地址方法
  14. 【自动驾驶】高级辅助驾驶系统与车联网
  15. 虚拟码号应用行业介绍!
  16. c语言运行后tecplot云图,tecplot执行fluent后处理截面云图显示-20210327085801.docx-原创力文档...
  17. R语言使用贝叶斯层次模型进行空间数据分析
  18. U盘识别不了如何恢复,如何恢复不能识别的U盘
  19. Leetcode x的平方根
  20. JavaScrip 基础 第三篇

热门文章

  1. 断开的管道 java.io.IOException: Broken pipe 解决方法
  2. java uuid 线程安全_java – 在多线程应用程序中生成相同的UUID
  3. 无锡计算机硬件培训,无锡锡山办公软件电脑基础培训随到随学 学会为止
  4. Linux执行命令提示Password,linux expect远程自动登录以及执行命令
  5. matlab ones函数_Matlab中相见恨晚的命令(持续更新)
  6. 远程控制python
  7. cad多段线画圆弧方向_CAD箭头怎么画
  8. JS_13原型与原型链
  9. eigen 列向量转矩阵_快速入门矩阵运算——开源库Eigen
  10. nginxlua文件服务器权限,通过lua进行nginx的权限控制