CREATE SECRET¶
在当前/指定架构中创建新密钥或替换现有密钥。
语法¶
OAuth(使用客户端凭据流程):
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 API_AUTHENTICATION = <security_integration_name> OAUTH_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) [ COMMENT = '<string_literal>' ]
OAuth(使用授权代码授予流程:)
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '<string_literal>' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '<string_literal>' API_AUTHENTICATION = <security_integration_name>; [ COMMENT = '<string_literal>' ]
基本身份验证:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = PASSWORD USERNAME = '<username>' PASSWORD = '<password>' [ COMMENT = '<string_literal>' ]
通用字符串:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = GENERIC_STRING SECRET_STRING = '<string_literal>' [ COMMENT = '<string_literal>' ]
OAuth 客户端凭据流程的必填参数¶
name
指定密钥的标识符(即名称)的字符串;在架构中必须唯一。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
TYPE = OAUTH2
指定要用于 OAuth 授予流程的密钥。
API_AUTHENTICATION = security_integration_name
指定将 Snowflake 连接到外部服务的 Snowflake 安全集成的
name
值。OAUTH_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )
指定在以下情况下使用的以逗号分隔的范围列表:在 OAuth 客户端凭据流程期间,对集成具有 USAGE 权限的角色从 OAuth 服务器发出请求。
此列表必须是安全集成的
OAUTH_ALLOWED_SCOPES
属性中定义的范围的子集。如果未指定OAUTH_SCOPES
属性值,则密钥将继承安全集成中指定的所有范围。对于 ServiceNow 连接器,唯一可能的范围值是
'useraccount'
。
基本身份验证的必填参数¶
name
指定密钥的标识符(即名称)的字符串;在架构中必须唯一。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
TYPE = PASSWORD
指定用于基本身份验证的密钥。
指定此类型时,必须指定用户名和密码属性的值。
USERNAME = 'username'
指定要存储在密钥中的用户名值。
将
TYPE
值设置为用于基本身份验证的PASSWORD
时,请指定此值。PASSWORD = 'password'
指定要存储在密钥中的密码值。
将
TYPE
值设置为用于基本身份验证的PASSWORD
时,请指定此值。
通用字符串参数¶
name
指定密钥的标识符(即名称)的字符串;在架构中必须唯一。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
TYPE = GENERIC_STRING
指定用于存储敏感字符串值的密钥。
SECRET_STRING = 'string_literal'
指定要存储在密钥中的字符串。
该字符串可以是 API 令牌或敏感值字符串,可在 UDF 或存储过程的处理程序代码中使用。有关详细信息,请参阅 创建和使用外部访问集成。
不应使用此属性来存储任何类型的 OAuth 令牌;对于您的 OAuth 用例,请使用其他密钥类型之一。
可选参数¶
COMMENT = 'string_literal'
用于指定密钥注释的字符串(字面量)。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE SECRET |
架构 |
请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
创建用于 OAuth 客户端凭据流程的密钥:
CREATE OR REPLACE SECRET mysecret TYPE = OAUTH2 API_AUTHENTICATION = mysecurityintegration OAUTH_SCOPES = ('useraccount') COMMENT = 'secret for the service now connector'
创建用于 OAuth 代码授予流程的密钥:
CREATE SECRET service_now_creds_oauth_code TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00' API_AUTHENTICATION = sn_oauth;
创建一个密钥,以指定用于访问 ServiceNow 的用户名和密码:
CREATE SECRET service_now_creds_pw TYPE = password USERNAME = 'jsmith1' PASSWORD = 'W3dr@fg*7B1c4j';