GRANT <権限> ... TO ROLE¶
セキュリティ保護可能なオブジェクトに対する1つ以上のアクセス権限をデータベースロールに付与します。付与できる権限はオブジェクト固有です。
セキュリティ保護可能なオブジェクトに対する権限を共有に付与する方法については、 GRANT <権限> ... TO SHARE をご参照ください。
- ロール:
ロールに付与できる権限は次のカテゴリに分類されます。
グローバル権限。
リソースモニター、仮想ウェアハウス、およびデータベースなど、アカウントオブジェクトの権限。
スキーマの権限。
テーブル、ビュー、ステージ、ファイル形式、 UDFs、およびシーケンスなど、スキーマオブジェクトの権限。
- データベースロール:
データベースロールに付与できる権限は次のカテゴリに分類されます。
データベースロールを含むデータベースに対する権限。
データベースロールを含むデータベース内のスキーマに対する権限。
テーブル、ビュー、ステージ、ファイル形式、 UDFs、およびシーケンスなど、データベースロールを含むデータベースにあるスキーマオブジェクトの権限
ロールとセキュリティ保護可能なオブジェクトの詳細については、 アクセス制御の概要 をご参照ください。
- バリエーション:
- こちらもご参照ください。
構文¶
アカウントロール:
GRANT { { globalPrivileges | ALL [ PRIVILEGES ] } ON ACCOUNT
| { accountObjectPrivileges | ALL [ PRIVILEGES ] } ON { USER | RESOURCE MONITOR | WAREHOUSE | COMPUTE POOL | DATABASE | INTEGRATION | CONNECTION | FAILOVER GROUP | REPLICATION GROUP | EXTERNAL VOLUME } <object_name>
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { FUTURE SCHEMAS IN DATABASE <db_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> } }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON FUTURE <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> }
}
TO [ ROLE ] <role_name> [ WITH GRANT OPTION ]
データベースロール:
GRANT { { CREATE SCHEMA | MODIFY | MONITOR | USAGE } [ , ... ] } ON DATABASE <object_name>
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { FUTURE SCHEMAS IN DATABASE <db_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> } }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON FUTURE <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> }
}
TO DATABASE ROLE <database_role_name> [ WITH GRANT OPTION ]
条件:
globalPrivileges ::=
{
CREATE {
ACCOUNT | APPLICATION | APPLICATION PACKAGE | COMPUTE POOL | DATA EXCHANGE LISTING
| DATABASE | EXTERNAL VOLUME | FAILOVER GROUP | INTEGRATION | NETWORK POLICY
| ORGANIZATION LISTING | ORGANIZATION PROFILE | REPLICATION GROUP | ROLE | SHARE
| USER | WAREHOUSE
}
| ATTACH POLICY | AUDIT | BIND SERVICE ENDPOINT
| APPLY {
{ AGGREGATION | AUTHENTICATION | JOIN | MASKING | PACKAGES | PASSWORD
| PROJECTION | ROW ACCESS | SESSION } POLICY
| CONTACT
| TAG }
| EXECUTE { ALERT | DATA METRIC FUNCTION | MANAGED ALERT | MANAGED TASK | TASK }
| IMPORT { SHARE | ORGANIZATION LISTING }
| MANAGE { ACCOUNT SUPPORT CASES | EVENT SHARING | GRANTS | LISTING AUTO FULFILLMENT | ORGANIZATION SUPPORT CASES | SHARE TARGET | USER SUPPORT CASES | WAREHOUSES }
| MODIFY { LOG LEVEL | TRACE LEVEL | SESSION LOG LEVEL | SESSION TRACE LEVEL }
| MONITOR { EXECUTION | SECURITY | USAGE }
| OVERRIDE SHARE RESTRICTIONS | PURCHASE DATA EXCHANGE LISTING | RESOLVE ALL
| READ SESSION
}
[ , ... ]
accountObjectPrivileges ::=
-- For APPLICATION PACKAGE
{ ATTACH LISTING | DEVELOP | INSTALL | MANAGE VERSIONS | MANAGE RELEASES } [ , ... ]
-- For COMPUTE POOL
{ MODIFY | MONITOR | OPERATE | USAGE } [ , ... ]
-- For CONNECTION
{ FAILOVER } [ , ... ]
-- For DATABASE
{ APPLYBUDGET | CREATE { DATABASE ROLE | SCHEMA }
| IMPORTED PRIVILEGES | MODIFY | MONITOR | USAGE } [ , ... ]
-- For EXTERNAL VOLUME
{ USAGE } [ , ... ]
-- For FAILOVER GROUP
{ FAILOVER | MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For INTEGRATION
{ USAGE | USE_ANY_ROLE } [ , ... ]
-- For ORGANIZATION PROFILE
{ MODIFY } [ , ... ]
-- For REPLICATION GROUP
{ MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For RESOURCE MONITOR
{ MODIFY | MONITOR } [ , ... ]
-- For USER
{ MODIFY PROGRAMMATIC AUTHENTICATION METHODS | MONITOR } [ , ... ]
-- For WAREHOUSE
{ APPLYBUDGET | MODIFY | MONITOR | USAGE | OPERATE } [ , ... ]
schemaPrivileges ::=
ADD SEARCH OPTIMIZATION | APPLYBUDGET
| CREATE {
ALERT | CONTACT | CORTEX SEARCH SERVICE | DATA METRIC FUNCTION | DATASET
| EVENT TABLE | FILE FORMAT | FUNCTION
| { GIT | IMAGE } REPOSITORY
| MODEL | NETWORK RULE | NOTEBOOK | PIPE | PROCEDURE
| { AGGREGATION | AUTHENTICATION | MASKING | PACKAGES
| PASSWORD | PRIVACY | PROJECTION | ROW ACCESS | SESSION } POLICY
| SECRET | SEQUENCE | SERVICE | SNAPSHOT | STAGE | STREAM | STREAMLIT
| SNOWFLAKE.CORE.BUDGET
| SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
| SNOWFLAKE.DATA_PRIVACY.CUSTOM_CLASSIFIER
| SNOWFLAKE.ML.ANOMALY_DETECTION | SNOWFLAKE.ML.CLASSIFICATION
| SNOWFLAKE.ML.FORECAST | SNOWFLAKE.ML.TOP_INSIGHTS
| SNOWFLAKE.ML.DOCUMENT_INTELLIGENCE
| [ { DYNAMIC | EXTERNAL | ICEBERG } ] TABLE
| TAG | TASK | [ { MATERIALIZED | SEMANTIC } ] VIEW
}
| MODIFY | MONITOR | USAGE
[ , ... ]
schemaObjectPrivileges ::=
-- For ALERT
{ MONITOR | OPERATE } [ , ... ]
-- For CONTACT
{ APPLY | MODIFY } [ , ... ]
-- For DATA METRIC FUNCTION
USAGE [ , ... ]
-- For DATASET, FILE FORMAT, FUNCTION (UDF or external function), MODEL, PROCEDURE, SECRET, SEQUENCE, or SNAPSHOT
USAGE [ , ... ]
-- For DYNAMIC TABLE
MONITOR, OPERATE, SELECT [ , ...]
-- For EVENT TABLE
{ APPLYBUDGET | DELETE | OWNERSHIP | REFERENCES | SELECT | TRUNCATE } [ , ... ]
-- For GIT REPOSITORY
{ READ, WRITE } [ , ... ]
-- For HYBRID TABLE
{ APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For IMAGE REPOSITORY
{ READ, WRITE } [ , ... ]
-- For ICEBERG TABLE
{ APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For MATERIALIZED VIEW
{ APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
-- For PIPE
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For { AGGREGATION | AUTHENTICATION | MASKING | JOIN | PACKAGES | PASSWORD | PRIVACY | PROJECTION | ROW ACCESS | SESSION } POLICY or TAG
APPLY [ , ... ]
-- For SECRET
{ READ | USAGE } [ , ... ]
-- For SEMANTIC VIEW
{ SELECT | REFERENCES } [ , ... ]
-- For SERVICE
{ MONITOR | OPERATE } [ , ... ]
-- For external STAGE
USAGE [ , ... ]
-- For internal STAGE
READ [ , WRITE ] [ , ... ]
-- For STREAM
SELECT [ , ... ]
-- For STREAMLIT
USAGE [ , ... ]
-- For TABLE
{ APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For TAG
READ
-- For TASK
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For VIEW
{ REFERENCES | SELECT } [ , ... ]
各オブジェクトタイプでサポートされている権限の詳細については、 アクセス制御権限 をご参照ください。
必須パラメーター¶
object_name
権限が付与されるオブジェクトの識別子を指定します。
object_type
スキーマレベルオブジェクトの型を指定します。
AGGREGATION POLICY
ALERT
AUTHENTICATION POLICY
CORTEX SEARCH SERVICE
DATA METRIC FUNCTION
DATASET
DYNAMIC TABLE
EVENT TABLE
EXTERNAL TABLE
FILE FORMAT
FUNCTION
GIT REPOSITORY
IMAGE REPOSITORY
ICEBERG TABLE
JOIN POLICY
MASKING POLICY
MATERIALIZED VIEW
MODEL
MODEL MONITOR
NETWORK RULE
NOTEBOOK
PACKAGES POLICY
PASSWORD POLICY
PIPE
PRIVACY POLICY
PROCEDURE
PROJECTION POLICY
ROW ACCESS POLICY
SECRET
SEMANTIC VIEW
SERVICE
SESSION POLICY
SEQUENCE
SNAPSHOT
STAGE
STREAM
STREAMLIT
TABLE
TAG
TASK
VIEW
object_type_plural
object_type
の複数形(例:TABLES
、VIEWS
)。パイプへの一括付与は許可されていないことに注意してください。
role_name
受信者のロール(つまり、権限が付与されるロール)の識別子を指定します。
database_role_name
受信者のデータベースロール(つまり、権限が付与されるロール)の識別子を指定します。識別子が
db_name.database_role_name
の形式で完全修飾されていない場合、コマンドはセッションの現在のデータベースでデータベースロールを検索します。すべての権限は、データベースロールを含むデータベースと、同じデータベース内の他のオブジェクトに限定されます。
オプションのパラメーター¶
FUTURE
既存のオブジェクトではなく、指定されたタイプ(テーブルやビューなど)の新しい(つまり将来の)データベースオブジェクトやスキーマオブジェクトに権限を付与することを指定します。ON FUTURE パラメーターを指定して REVOKE <権限> ... FROM ROLE を使えば、いつでも将来の権限を取り消すことができることに注意してください。既存のオブジェクトに付与された権限は保持されます。今後の付与の詳細については、このトピックの データベースまたはスキーマオブジェクトの将来の付与 をご参照ください。
WITH GRANT OPTION
指定した場合、受信者のロールが他のロールに権限を付与できます。
デフォルト: 値なし。つまり、受信者ロールは他のロールに権限を付与できません。
注釈
WITH GRANT OPTION パラメーターは、 IMPORTED PRIVILEGES 権限をサポートしていません。詳細については、 インポートされたデータベースへの権限の付与 をご参照ください。
使用上の注意¶
どのクラスに対しても、権限を直接付与したり、取り消したりすることはできません。しかし、クラスのインスタンスを作成し、アカウントロールに インスタンスロール を付与することはできます。ロールがクラスのインスタンスを作成できるように、スキーマに対する CREATE <クラス名> 権限を付与します。
OWNERSHIP は、将来の付与をサポートするすべてのオブジェクトタイプで有効な権限です。
オブジェクト(またはスキーマ内の指定されたタイプのすべてのオブジェクト)に対する OWNERSHIP 権限をロールに付与し、オブジェクトの所有権をあるロールから別のロールに譲渡するには、代わりに GRANT OWNERSHIP を使用します。GRANT OWNERSHIP コマンドの構文は異なります。
単一の GRANT ステートメントで同じオブジェクトタイプに複数の権限を指定できます(各権限をコンマで区切る)か、特別な
ALL [ PRIVILEGES ]
キーワードを使用して、指定したオブジェクトタイプにすべての適用可能な権限を付与できます。ただし、 GRANT コマンドを実行するロールが保持および付与できる権限のみが実際にターゲットロールに付与されることに注意してください。付与できなかった権限については、警告メッセージが返されます。タグにこのキーワードを指定することはできません。
このキーワードは、スキーマに対する
ALL
権限を付与しようとしても、クラスに対する権限を付与しません。ロールに特定のクラスのインスタンス作成を許可するには、 クラス の例に示すように CREATE 権限を直接付与します。
特定のロールに付与された権限は、ロールが付与された他のロール、およびロール階層内の他のより高いレベルのロールによって自動的に継承されます。詳細については、 アクセス制御の概要 をご参照ください。
データベースについては、 IMPORTED PRIVILEGES 権限は共有データベース(つまり、共有から作成されたデータベース)にのみ適用されます。詳細については、 インポートされたデータの消費 をご参照ください。IMPORTED PRIVILEGES 権限はデータベースロールに付与できないことに注意してください。
スキーマおよびスキーマ内のオブジェクトについては、コンテナー(つまりデータベースまたはスキーマ)内の同じタイプのすべてのオブジェクトに権限を付与するために、
ALL object_type_plural in container
オプションが提供されます。これは便利なオプションです。内部的には、コマンドは各オブジェクト上で一連の個別の GRANT コマンドに展開されます。コンテナ内に現在存在するオブジェクトのみが影響を受けます。ただし、Snowflakeモデルでは、権限の一括付与は推奨されていないことに注意してください。代わりに、共有ロールを作成し、そのロールを使用して、ロールを付与されたすべてのユーザーが自動的にアクセスできるオブジェクトを作成することをお勧めします。
ALL TAGS または ALL MASKING POLICIES は指定できません。
管理アクセススキーマの場合:
オブジェクトの OWNERSHIP 権限は、スキーマ所有者の従属ロールにのみ転送できます。
ステージの場合:
USAGE 外部ステージにのみ適用されます。
READ | WRITE は内部ステージにのみ適用されます。さらに、内部ステージで WRITE 権限を付与するには、まずステージで READ 権限を付与する必要があります。
外部ステージと内部ステージの詳細については、 CREATE STAGE をご参照ください。
個々の UDF またはストアドプロシージャに権限を付与する場合、引数のデータ型があれば、以下の構文で指定する必要があります。
<udf_or_stored_procedure_name> ( [ <arg_data_type> [ , ... ] ] )
Snowflakeでは、スキーマ内で同じ名前を持つ UDFs またはストアドプロシージャを解決するために引数データ型を使用します。詳細については、 プロシージャおよび関数のオーバーロード をご参照ください。
動的テーブルの場合、受信ロールには、動的テーブルを含むデータベースとスキーマ、およびテーブルのリフレッシュに使用されるウェアハウスに対する USAGE 権限を付与する必要があります。詳細については、 動的テーブルのアクセス制御 をご参照ください。
ハイブリッドテーブルに権限を付与するには、標準の TABLE または TABLES キーワードを使用します。HYBRID TABLE または HYBRID TABLES は指定できません。
アクセス制御の要件¶
- 個々のオブジェクトに対する権限の付与:
一般に、次の権限セットのいずれかを持つロールは、オブジェクトに対する権限を他のロールに付与できます。
MANAGE GRANTS グローバル権限。
SECURITYADMIN および ACCOUNTADMIN システムロールのみが MANAGE GRANTS 権限を持っています。ただし、この権限はカスタムロールに付与できます。
オブジェクトに対する OWNERSHIP 権限。スキーマオブジェクト(例: テーブルやビュー)に対する権限を付与する場合、ロールには、親データベースとスキーマに対する USAGE 権限も必要です。
GRANT <権限> ... TO ROLE ステートメントに含まれる WITH GRANT OPTION パラメーターを使用してロールに権限が付与された場合、そのロールは他のロールに同じ権限を付与できます。
管理アクセススキーマ(つまり、 CREATE SCHEMA ... WITH MANAGED ACCESS 構文を使用して作成されたスキーマ)では、オブジェクト所有者は付与を決定する能力を失います。スキーマ所有者(つまり、スキーマの OWNERSHIP 権限を持つロール)またはグローバル MANAGE GRANTS 権限を持つロールのみが、スキーマ内のオブジェクトに権限を付与できます。
MANAGE GRANTS グローバル権限を保持するロールは、現在の(付与者)ロールに追加の権限を付与できることに注意してください。
- 指定された型の将来のオブジェクトに対する付与の定義:
データベースレベル
データベースにある将来のオブジェクトの権限を付与するには、 MANAGE GRANTS グローバル権限が必要です。SECURITYADMIN および ACCOUNTADMIN システムロールのみが MANAGE GRANTS 権限を持っています。ただし、この権限はカスタムロールに付与できます。
スキーマレベル
管理されたアクセススキーマ(つまり、 CREATE SCHEMA ... WITH MANAGED ACCESS 構文を使用して作成されたスキーマ)では、スキーマ所有者(つまり、スキーマ上で OWNERSHIP 権限を持つロール)またはグローバル MANAGE GRANTS 権限を持つロールのどちらかが、スキーマ内の将来のオブジェクトに権限を付与することができます。
標準スキーマでは、スキーマにある将来のオブジェクトの権限を付与するには、MANAGE GRANTS グローバル権限が必要です。
指定した型の将来のオブジェクトに対する付与の定義の詳細については、 データベースまたはスキーマオブジェクトに対する将来の付与 (このトピック内)をご参照ください。
データベースまたはスキーマオブジェクトに対する将来の許可¶
このセクションの注意事項は、スキーマまたはデータベース内のオブジェクトに将来の付与を割り当てる場合、つまり ON FUTURE パラメーターを使用する場合に適用されます。
詳細については、 管理アクセススキーマ をご参照ください。
考慮事項¶
同じデータベースで、データベースとスキーマのために将来の付与が 同じオブジェクト型で 定義される場合、スキーマレベルの付与はデータベースレベルの付与よりも優先され、データベースレベルの付与は無視されます。この動作は、1つまたは別のロールに付与された将来のオブジェクトに対する権限に適用されます。
たとえば、次のステートメントは、データベースレベルとスキーマレベルで同じ型のオブジェクトに対して異なる権限を付与します。
データベース
d1
内にあるすべての将来のテーブルに対する SELECT 権限をロールr1
に付与します。この付与は、d1
内のすべてのスキーマのすべてのフューチャーテーブルへのアクセス権を与えます。GRANT SELECT ON FUTURE TABLES IN DATABASE d1 TO ROLE r1;
d1.s1
スキーマ内にあるすべての将来のテーブルに対する INSERT および DELETE 権限をロールr2
に付与します。GRANT INSERT, DELETE ON FUTURE TABLES IN SCHEMA d1.s1 TO ROLE r2;
r1
ロールに割り当てられた将来の付与は完全に無視されます。スキーマd1.s1
に新しいテーブルが作成されると、r2
ロールのテーブルに対して定義された将来の権限のみが付与されます。データベースレベルの将来の付与は、通常のアクセススキーマと 管理アクセススキーマ の両方に適用されます。
制限と制約¶
セキュリティ保護可能なオブジェクトタイプごとに、可能な OWNERSHIP 権限の将来の付与は1件のみです。
次の型のオブジェクトでは、将来の付与を定義できません。
コンピューティングプール
外部関数
イメージリポジトリ
組織プロファイル
ポリシーオブジェクト:
集計ポリシー
結合ポリシー
マスキングポリシー
パッケージポリシー
投影ポリシー
行アクセスポリシー
セッションポリシー
スナップショット
タグ
データベース内の指定されたタイプのオブジェクトに対する OWNERSHIP 権限の今後の付与は、管理アクセススキーマ内の新しいオブジェクトには適用 されません。
次の制限は、管理アクセススキーマ内のオブジェクトに対する今後の付与に適用されます。
オブジェクトに対して将来付与される OWNERSHIP 権限は、スキーマ所有者の下位ロール(つまり、スキーマに対して OWNERSHIP 権限を持つロール)にのみ適用することができます。
管理対象アクセススキーマの所有権を別のロールに移行する前に、 ON FUTURE パラメーターを指定して、 REVOKE <権限> ... FROM ROLE を使用して、 OWNERSHIP 権限を取り消す必要があります。
テーブルの名前を変更または交換する場合、将来の付与は適用されません。
将来の付与は、次の制限をともなう名前付きステージでサポートされます。
READ 権限なしでは WRITE 権限を指定できません。
WRITE 権限が存在する場合、READ 権限を取り消すことはできません。
内部ステージでは、READ または WRITE 権限を持つ将来の付与のみが具体化されます。
外部ステージの場合、 USAGE 権限を持つ将来の付与のみが具体化されます。
例¶
ロール¶
analyst
ロールに対して、 report_wh
ウェアハウスの操作(つまり、一時停止または再開)に必要な権限を付与します。
GRANT OPERATE ON WAREHOUSE report_wh TO ROLE analyst;
前述の例を繰り返しますが、 analyst
ロールが他のロールに権限を付与することも許可します。
GRANT OPERATE ON WAREHOUSE report_wh TO ROLE analyst WITH GRANT OPTION;
mydb.myschema
スキーマのすべての既存のテーブルに対するSELECT権限を analyst
ロールに付与します。
GRANT SELECT ON ALL TABLES IN SCHEMA mydb.myschema to ROLE analyst;
mydb.myschema
スキーマの2つのUDFsに対するすべての権限を analyst
ロールに付与します。
GRANT ALL PRIVILEGES ON FUNCTION mydb.myschema.add5(number) TO ROLE analyst; GRANT ALL PRIVILEGES ON FUNCTION mydb.myschema.add5(string) TO ROLE analyst;UDFs には異なる引数があることに注意してください。引数は、Snowflakeが同じ名前の UDFs を一意に識別する方法です。UDF 命名の詳細については、 ユーザー定義関数の概要 をご参照ください。
analyst
ロールに mydb.myschema
スキーマのストアドプロシージャの USAGE 権限を付与します。
GRANT USAGE ON PROCEDURE mydb.myschema.myprocedure(number) TO ROLE analyst;ストアドプロシージャ名(UDF 名など)はオーバーロードされる可能性があるため、引数のデータ型を指定する必要があることに注意してください。名前のオーバーロードの詳細については、 プロシージャおよび関数のオーバーロード をご参照ください。
ロールに CREATE PROVISIONED THROUGHPUT 権限を付与します。
GRANT CREATE PROVISIONED THROUGHPUT ON ACCOUNT TO ROLE myrole;
指定されたスキーマに、マテリアライズドビューを作成する権限を付与します。
GRANT CREATE MATERIALIZED VIEW ON SCHEMA mydb.myschema TO ROLE myrole;
mydb.myschema
スキーマで作成されたすべての 将来の テーブルに対する SELECT および INSERT 権限を role1
ロールに付与します。
GRANT SELECT, INSERT ON FUTURE TABLES IN SCHEMA mydb.myschema TO ROLE role1;
mydb
データベース内のすべての 将来の スキーマに対する USAGE 権限を role1
ロールに付与します。
USE ROLE ACCOUNTADMIN; GRANT USAGE ON FUTURE SCHEMAS IN DATABASE mydb TO ROLE role1;
指定されたスキーマ内のすべてのテーブルを指定されたロールに ALL PRIVILEGES を付与します。この付与は、指定されたスキーマ内の標準テーブルとハイブリッドテーブルの両方に適用されることに注意してください。
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ht_schema TO ROLE ht_role;
データベースロール¶
mydb.myschema
スキーマにあるすべての既存のテーブルに対する SELECT 権限を mydb.dr1
データベースロールに付与します。
GRANT SELECT ON ALL TABLES IN SCHEMA mydb.myschema TO DATABASE ROLE mydb.dr1;
mydb.myschema
スキーマの2つのUDFsに対するすべての権限を mydb.dr1
データベースロールに付与します。
GRANT ALL PRIVILEGES ON FUNCTION mydb.myschema.add5(number) TO DATABASE ROLE mydb.dr1; GRANT ALL PRIVILEGES ON FUNCTION mydb.myschema.add5(string) TO DATABASE ROLE mydb.dr1;UDFs には異なる引数があることに注意してください。引数は、Snowflakeが同じ名前の UDFs を一意に識別する方法です。UDF 命名の詳細については、 ユーザー定義関数の概要 をご参照ください。
mydb.myschema
スキーマのストアドプロシージャに対する使用権限を mydb.dr1
データベースロールに付与します。
GRANT USAGE ON PROCEDURE mydb.myschema.myprocedure(number) TO DATABASE ROLE mydb.dr1;ストアドプロシージャ名(UDF 名など)はオーバーロードされる可能性があるため、引数のデータ型を指定する必要があることに注意してください。ストアドプロシージャの詳細については、 プロシージャおよび関数のオーバーロード をご参照ください。
指定されたスキーマ内にマテリアライズドビューを作成する権限を mydb.dr1
データベースロールに付与します。
GRANT CREATE MATERIALIZED VIEW ON SCHEMA mydb.myschema TO DATABASE ROLE mydb.dr1;
mydb.myschema
スキーマで作成されたすべての 将来の テーブルに対する SELECT および INSERT 権限を mydb.dr1
データベースロールに付与します。
GRANT SELECT,INSERT ON FUTURE TABLES IN SCHEMA mydb.myschema TO DATABASE ROLE mydb.dr1;
mydb
データベース内のすべての 将来の スキーマに対する USAGE 権限を role1
ロールに付与します。
USE ROLE ACCOUNTADMIN; GRANT USAGE ON FUTURE SCHEMAS IN DATABASE mydb TO DATABASE ROLE mydb.dr1;
クラス¶
アカウントロールがスキーマで予算を作成できるようにするには、スキーマに対する CREATE SNOWFLAKE.CORE.BUDGET 権限をそのロールに付与します。
USE ROLE ACCOUNTADMIN; GRANT CREATE SNOWFLAKE.CORE.BUDGET ON SCHEMA budgets_db.budgets_schema TO ROLE budget_admin;
アカウントロールがスキーマ内で ML 関数モデル(予測、異常検出、または分類)を作成できるようにするには、スキーマに対する適切な権限をロールに付与します。以下の権限を利用できます。
CREATE SNOWFLAKE.ML.ANOMALY_DETECTION
CREATE SNOWFLAKE.ML.CLASSIFICATION
CREATE SNOWFLAKE.ML.FORECAST
CREATE SNOWFLAKE.ML.TOP_INSIGHTS