CREATE DATABASE ROLE

创建新的 数据库角色 或替换系统中现有的数据库角色。

创建数据库角色后,您可以为该数据库角色授予对象权限,然后将该数据库角色授予其他数据库角色或账户角色,以启用系统对象的访问控制安全性。

另请参阅:

GRANT <privileges>GRANT DATABASE ROLEGRANT OWNERSHIPDROP DATABASE ROLEALTER DATABASE ROLESHOW DATABASE ROLESCREATE <object> ... CLONE

语法

CREATE [ OR REPLACE ] DATABASE ROLE [ IF NOT EXISTS ] <name>
  [ COMMENT = '<string_literal>' ]
Copy

必填参数

name

指定数据库角色的标识符(即名称);对于创建角色的数据库来说必须是唯一的。

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

如果未以 db_name.database_role_name 的形式来完全限定标识符,则该命令将在会话的当前数据库中创建数据库角色。

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

可选参数

COMMENT = 'string_literal'

指定数据库角色的注释。

默认:无值

访问控制要求

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

权限

对象

备注

CREATE DATABASE ROLE

数据库

具有数据库 OWNERSHIP 权限的角色可以将 CREATE DATABASE ROLE 权限授予另一个账户角色。

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

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

使用说明

  • 创建数据库角色时,会自动授予该数据库角色包含了数据库角色的数据库的 USAGE 权限。

小心

避免重新创建数据库角色(使用 OR REPLACE 关键字)。在后台,重新创建对象(使用 CREATE OR REPLACE <object>)首先会删除对象,然后创建该对象。重新创建数据库角色会将数据库角色从其被授予的任何共享中删除。必须再次向这些共享授予数据库角色。

如果必须重新创建数据库角色,请通知包含该数据库角色的共享的任何数据使用者。他们必须再次向自己的账户角色授予数据库角色。

关于元数据:

注意

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

示例

在数据库 d1 中创建数据库角色 dr1

CREATE DATABASE ROLE d1.dr1;
Copy
语言: 中文