关于Snowflake中获取存储过程开发者信息的系统视图/表的咨询
获取Snowflake存储过程开发者信息的系统视图
嘿,这个需求很实用!在Snowflake里确实有几个内置的系统视图能帮你获取存储过程的开发者及相关元数据,我给你梳理清楚:
1. INFORMATION_SCHEMA.PROCEDURES(模式级视图)
这是每个数据库和模式下都能访问的视图,能返回当前模式内存储过程的详细信息,直接关联开发者的核心字段有:
CREATED_BY:创建该存储过程的用户名称/IDLAST_ALTERED_BY:最后一次修改该存储过程的用户名称/ID
给你个实用的查询示例:
SELECT PROCEDURE_NAME, CREATED_BY, CREATED, LAST_ALTERED_BY, LAST_ALTERED, PROCEDURE_DEFINITION FROM INFORMATION_SCHEMA.PROCEDURES WHERE PROCEDURE_SCHEMA = '你的模式名' AND PROCEDURE_CATALOG = '你的数据库名';
2. ACCOUNT_USAGE.PROCEDURES(账户级视图)
如果需要跨多个数据库、模式查看全账户内的存储过程信息,这个视图会更高效——它包含了整个账户下所有存储过程的元数据,同样带有CREATED_BY和LAST_ALTERED_BY字段。
查询示例:
SELECT PROCEDURE_ID, PROCEDURE_NAME, DATABASE_NAME, SCHEMA_NAME, CREATED_BY, LAST_ALTERED_BY, CREATED_ON, LAST_ALTERED_ON FROM ACCOUNT_USAGE.PROCEDURES WHERE DELETED_ON IS NULL; -- 过滤已删除的存储过程
小提醒
- 访问
ACCOUNT_USAGE.PROCEDURES需要账户级权限,比如MONITOR USAGE或者ACCOUNTADMIN角色;而INFORMATION_SCHEMA.PROCEDURES只需要当前模式的USAGE权限即可。 - 如果存储过程是用
SECURE属性创建的,PROCEDURE_DEFINITION字段会返回NULL,以此保护敏感代码内容。
内容的提问来源于stack exchange,提问作者akshindesnowflake
相关产品推荐
相关产品推荐

