CREATE SECRET

在当前/指定架构中创建新密钥或替换现有密钥。

另请参阅:

ALTER SECRETDESCRIBE SECRETDROP SECRETSHOW SECRETS

语法

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>' ]
Copy

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>' ]
Copy

基本身份验证:

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = PASSWORD
    USERNAME = '<username>'
    PASSWORD = '<password>'
    [ COMMENT = '<string_literal>' ]
Copy

通用字符串:

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = GENERIC_STRING
    SECRET_STRING = '<string_literal>'
    [ COMMENT = '<string_literal>' ]
Copy

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'

OAuth 授权代码授予流程的必填参数

name

指定密钥的标识符(即名称)的字符串;在架构中必须唯一。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

有关更多详细信息,请参阅 标识符要求

TYPE = OAUTH2

指定要用于 OAuth 授予流程的密钥。

OAUTH_REFRESH_TOKEN = 'string_literal'

指定字符串形式的令牌,它用于在访问令牌过期时从 OAuth 授权服务器获取新的访问令牌。

OAUTH_REFRESH_TOKEN_EXPIRY_TIME = 'string_literal'

当 OAuth 刷新令牌过期时,指定字符串形式的时间戳。

API_AUTHENTICATION = security_integration_name

指定将 Snowflake 连接到外部服务的 Snowflake 安全集成的 name 值。

基本身份验证的必填参数

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'

用于指定密钥注释的字符串(字面量)。

默认:无值

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

CREATE SECRET

架构

请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

关于元数据:

注意

客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

创建用于 OAuth 客户端凭据流程的密钥:

CREATE OR REPLACE SECRET mysecret
    TYPE = OAUTH2
    API_AUTHENTICATION = mysecurityintegration
    OAUTH_SCOPES = ('useraccount')
    COMMENT = 'secret for the service now connector'
Copy

创建用于 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;
Copy

创建一个密钥,以指定用于访问 ServiceNow 的用户名和密码:

CREATE SECRET service_now_creds_pw
    TYPE = password
    USERNAME = 'jsmith1'
    PASSWORD = 'W3dr@fg*7B1c4j';
Copy
语言: 中文