我怎么能看到桌子的定义?

时间:2016-05-29 11:51:46

标签: mysql mariadb

我目前正在尝试转储我的生产数据库并将其部署在我的开发数据库中。

在我这样做之前,我愿意添加一个脚本,它将数据库表的定义器更改为部署完成后在我的开发数据库中使用的定义器。

有没有办法告诉桌子当前的定义器是什么? 我试过SHOW CREATE TABLE,但它没有给我那张桌子的定义。

请注意,我已经有一个脚本为另一个架构执行此操作,但我不确定其他架构的定义器是否相同。

另外,我无法通过互联网找到答案,所以我在这里问这个。

感谢。

2 个答案:

答案 0 :(得分:0)

数据库和表在MySQL中没有'definer'(或DBO)。

“users”是访问数据库和/或表的“GRANTed”权限。有不同的GRANTs会解决你想要解决的问题吗?

相关主题...存储的例程作为“调用者”或指定的“用户”(您在创建例程时的选择)执行,但我认为这不是您所要求的。

答案 1 :(得分:0)

您或其他导致此问题的人可能正在考虑可能与您试图为其查找定义器的表相关的过程/函数/触发器/事件/视图。

Stored Object Access Control

<块引用>

存储的程序(过程、函数、触发器和事件)和视图在使用前定义,并在被引用时在确定其权限的安全上下文中执行。适用于执行存储对象的权限由其 DEFINER 属性和 SQL SECURITY 特性控制。

在这种情况下,您可能会发现以下查询很有帮助: