redshift 更改 udf 更改所有者

Posted

技术标签:

【中文标题】redshift 更改 udf 更改所有者【英文标题】:redshift alter udf change owner 【发布时间】:2016-11-15 09:44:25 【问题描述】:

为了在 redshift 中删除用户,我必须更改该用户的所有权限和所有权。

然而,用户在 redshift 中也拥有用户定义的函数。

如何更改此用户定义函数的所有者?

[ ALTER FUNCTION f_.. OWNER TO xyz ] 

没用..

如何查看这个函数在哪里使用?

【问题讨论】:

如果人们有兴趣为这些类型的问题创建一个场所,请帮助支持dedicated Cloud Computing site on StackExchange 的提案。 【参考方案1】:

实际上,R.Zieglt 的解决方案对我不起作用。我需要指定输入参数类型,而不是名称。

这是我的示例:

ALTER FUNCTION udf_name (text) OWNER TO admin;

注意

如果不确定参数类型可以查询pg_proc表,通过proname过滤:

SELECT proargtypes FROM pg_proc WHERE proname ILIKE udf_name;

然后,您可以使用pg_type 表并将数字类型映射到其名称并按typname 过滤:

SELECT * FROM pg_type WHERE typelem = 23;

(取自Get a list of UDFs in Redshift。)

【讨论】:

【参考方案2】:

解决方案其实很简单,函数的输入变量要加:

Alter Function function_name ( input1,input2,...) OWNER TO new_user

【讨论】:

以上是关于redshift 更改 udf 更改所有者的主要内容,如果未能解决你的问题,请参考以下文章

为啥像 Snowflake 和 Redshift 这样的列式数据库不能更改列顺序?

另一个工作簿中的更改会影响主工作簿中的 UDF

Redshift UDF 兼容性问题

Redshift 更改查询

apache pig Java UDF - 更改属性中的值似乎并没有坚持

Redshift 使用数据更改数字列