七叶笔记 » 数据库 » PostgreSQL批量修改函数拥有者的操作

PostgreSQL批量修改函数拥有者的操作

批量修改

首先可以查询当前模式下函数的所有者分别是哪个用户,使用下面SQL来查询:

当前显示模式“abc”有2个无参函数和1个带参函数,拥有者都是postgres超级用户。

然后根据上面讲的两个视图: routines 和 parameters关联查询出模式下的所有函数和参数(目的是为了拼接SQL语句),参考如下:

这里我们再使用聚合函数: string_agg 把字段 params所有行连接成字符串,并用逗号分隔符分隔。

最后使用一个Postgres执行代码片段完成批量修改,完整SQL如下:

可以看到模式“abc”的Owner已经全部改为dbadmin这个账号了。

上次批量修改函数可能存在部分特殊场景会报错, 会把“参数类型” + “返回类型” 拼接在一起

改进方法:我们通过pg_catalog目录来实现批量修改,参考代码如下:

补充:PostgreSQL更改Owner所有者

网上一个大神写的

我来做一个改版

效果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。

相关文章