【问题标题】:Get procedure's body获取程序的主体
【发布时间】:2021-11-16 23:29:12
【问题描述】:
我创建了一个具有系统管理员角色的过程。我已授权使用我创建的新角色(角色名称 New_role)。
问题是拥有 new_role 权限的用户看不到过程主体(在执行 get_ddl 或描述过程时)。
只有 New_role 权限的用户如何查看/查看过程的主体?
我不想让系统管理员担任新角色,但我希望他可以选择查看过程的主体
谢谢
【问题讨论】:
标签:
stored-procedures
permissions
snowflake-cloud-data-platform
【解决方案1】:
没有一项授权允许在没有所有权的情况下授予此特定权限。但是,有几个解决方法。最简单的方法是创建一个 veiw,该 veiw 由拥有该过程的同一角色拥有,该角色检索过程定义。然后,您可以将对该视图的选择访问权限授予您喜欢的任何角色。
类似的东西
USE SYSADMIN;
USE MY_DB;
CREATE VIEW MY_SCHEMA.PROCEDURE_DEFINITIONS AS
SELECT PROCEDURE_SCHEMA, PROCEDURE_NAME, ARGUMENT_SIGNATURE, PROCEDURE_DEFINITION
FROM INFORMATION_SCHEMA.PROCEDURES;
GRANT SELECT ON VIEW MY_SCHEMA.PROCEDURE_DEFINITIONS TO NEW_ROLE;