Snowflake cloud data platform 在Snowflake中是否有一种方法允许用户在过程上获取ddl,但不具有使用权或所有权?

Snowflake cloud data platform 在Snowflake中是否有一种方法允许用户在过程上获取ddl,但不具有使用权或所有权?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我正试图以一种允许任何用户(甚至只读用户)发现和理解数据库中对象的方式来设计我的Snowflake DB权限。我对大多数对象都有这样做的方法,但我在程序上遇到了问题 似乎过程的唯一特权是使用权和所有权。理想情况下,我可以授予另一个权限,比如MONITOR,这样它就会显示在show语句中,这也允许我获取_DDL() 如果我想授予只读人员查看过程的权限,我能看到的唯一解决方法是确保所有过程都在调用方的权限下运行,然后授予它们使用权限。这样,如果过程中有任何禁止他们的内容,他们将无法实际运行它。您可以

我正试图以一种允许任何用户(甚至只读用户)发现和理解数据库中对象的方式来设计我的Snowflake DB权限。我对大多数对象都有这样做的方法,但我在程序上遇到了问题

似乎过程的唯一特权是使用权和所有权。理想情况下,我可以授予另一个权限,比如MONITOR,这样它就会显示在show语句中,这也允许我获取_DDL()

如果我想授予只读人员查看过程的权限,我能看到的唯一解决方法是确保所有过程都在调用方的权限下运行,然后授予它们使用权限。这样,如果过程中有任何禁止他们的内容,他们将无法实际运行它。

您可以使用


用法示例:
select*from information\u schema.procedures

更改过程执行的上下文。 默认情况下,过程在创建过程的人员的上下文中运行,并且对其内容的访问受到限制。 使用
executeascaller
子句将上下文替换为调用者。 例如:


你好,迈克尔。谢谢你的建议。这正是我在原始问题中提出的建议(见最后一段)。如果可能的话,我不想这样做。这只会显示您拥有权限的过程。
CREATE OR REPLACE PROCEDURE PROC_NAME ()
   RETURNS VARCHAR
   LANGUAGE javascript
   EXECUTE AS CALLER
   AS