【MySQL】MySQL修改用户名后无法使用视图

2019-10-29  本文已影响0人  miniy_7

数据库做迁移以后,关闭了MySQL数据库的远程访问,只能通过指定的host进行连接。通过访问时报错,具体错误信息如下
[Err] 1045 - Access denied for user 'iqm'@'%' (using password: YES)

原因: 创建 view 默认情况下,MySQL view 安全验证的方式(SQL SECURITY)是 definer方式。另外一种方式为 invoker,这两种方式区别如下

视图的创建语法:

CREATE
    [OR REPLACE]
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]

eg: definer 模式创建视图

create definer='root'@'%' 
view demo as
...

eg: invoker 模式创建视图

create definer='root'@'%'
SQL SECURITY INVOKER
view demo as
...
上一篇下一篇

猜你喜欢

热点阅读