MySql教程

Mysql视图无权限访问的批量修改方法

本文主要是介绍Mysql视图无权限访问的批量修改方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我们在使用Mysql数据库的时候,在项目上线迁移的时候,有时候由于开发环境和生产环境的差异,有时候

Mysql用户不一定能够保持一致,而其中view视图A用户创建的记录B用户就会无法访问

如果视图的记录比较少的话还好,如果多,那一个个重新修改创建就不太可能。

这里找到一个批量修改“定义者”的方法。

先根据如下SQL查询条件拼装出所有需要修改的视图的SQL

 

sql> select concat("alter DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `",TABLE_SCHEMA,"`.",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER = 'olduser@%';

 

然后执行下面的SQL批量执行就可以了

alter DEFINER=`root`@`localhost` 
SQL SECURITY DEFINER VIEW `test`.test_view as select `t`.`storeid` AS `storeid` from (`test`.`sc_saleorder_pdt` `t` left join `test`.`sc_saleorder` `m` on((`t`.`dataid` = `m`.`id`))) where (`m`.`jhtype` = 'wl');
alter DEFINER=`root`@`localhost` 

 

这篇关于Mysql视图无权限访问的批量修改方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!