시험덤프
매달, 우리는 1000명 이상의 사람들이 시험 준비를 잘하고 시험을 잘 통과할 수 있도록 도와줍니다.
  / COF-C03 덤프  / COF-C03 문제 연습

Snowflake COF-C03 시험

SnowPro Core Certification Exam 온라인 연습

최종 업데이트 시간: 2026년06월29일

당신은 온라인 연습 문제를 통해 Snowflake COF-C03 시험지식에 대해 자신이 어떻게 알고 있는지 파악한 후 시험 참가 신청 여부를 결정할 수 있다.

시험을 100% 합격하고 시험 준비 시간을 35% 절약하기를 바라며 COF-C03 덤프 (최신 실제 시험 문제)를 사용 선택하여 현재 최신 778개의 시험 문제와 답을 포함하십시오.

 / 74

Question No : 1


A global company needs to share financial reports with managers who are in different regions. Managers should only see the data from their respective regions.
How can these requirements be met with the least amount of operational overhead?

정답:
Explanation:
The correct answer is C. Use row-level security on the source data table used to generate the reports.
The requirement is to let managers see only rows for their respective regions. This is a row-filtering requirement, so Snowflake row-level security is the best fit.
Why C is correct:
Row-level security in Snowflake is implemented using row access policies. A row access policy can dynamically filter table rows based on the current user, current role, or mapping table logic.
Example concept:
CREATE ROW ACCESS POLICY region_policy
AS (region STRING) RETURNS BOOLEAN ->
region IN (
SELECT allowed_region
FROM manager_region_map
WHERE manager_role ) ;
This allows one shared table or report to serve multiple managers while enforcing region-specific visibility.
Why the other options are incorrect:
A. Creating unique views for each region increases operational overhead as regions or access rules change.
B. Building individual reports for each manager creates the highest operational overhead and is difficult to maintain.
D. Dynamic Data Masking hides or transforms column values. It does not filter rows by region.
Official Snowflake documentation reference:
Snowflake documentation describes row access policies as schema-level objects that determine whether a row is visible in a query result. They are used to implement row-level security.
Reference: Snowflake Documentation ― Row access policies; Snowflake Documentation ― Dynamic Data Masking; SnowPro Core Study Guide ― Data Protection and Governance.

Question No : 2


Which Snowflake feature or service can be used with a standard materialized view?

정답:
Explanation:
The correct answer is C. Clustering.
Materialized views store precomputed results and can improve query performance. Snowflake also supports clustering with materialized views in applicable scenarios, which can further improve pruning and query performance.
Why C is correct:
A materialized view can be clustered to help optimize access patterns. Clustering can improve performance when queries filter or join on specific columns.
Why the other options are incorrect:
A. Time Travel is not the main supported feature associated with standard materialized views in this question.
B. Fail-safe applies to protected table data storage, not as a feature used directly with standard materialized views for query optimization.
D. Data sharing generally requires secure objects for sharing views. A standard materialized view is not the best answer for this question.
Official Snowflake documentation reference:
Snowflake documentation explains materialized view behavior and supports clustering considerations for materialized views.
Reference: Snowflake Documentation ― Materialized views; Snowflake Documentation ― Clustering materialized views; SnowPro Core Study Guide ― Performance Optimization.

Question No : 3


Which command is used in Snowflake to manually refresh a directory table?

정답:
Explanation:
The correct answer is B. ALTER STAGE.
Directory tables are associated with stages. To manually refresh the metadata in a directory table, the stage is refreshed using the ALTER STAGE ... REFRESH command.
Why B is correct:
A directory table stores file-level metadata for files in a stage. Since the directory table is tied to the stage, the manual refresh operation is performed through the stage.
Example:
ALTER STAGE my_stage REFRESH;
This refreshes the directory table metadata for the stage.
Why the other options are incorrect:
A. TRUNCATE STAGE is not the command used to refresh directory table metadata.
C. ALTER TABLE is used to modify table properties, not refresh a directory table associated with a stage.
D. ALTER VIEW is used to modify views, not directory tables.
Official Snowflake documentation reference:
Snowflake documentation explains that directory table metadata can be refreshed manually using ALTER STAGE ... REFRESH.
Reference: Snowflake Documentation ― Directory tables; Snowflake Documentation ― ALTER STAGE; SnowPro Core Study Guide ― Data Loading and Unloading.

Question No : 4


What information in a secure User-Defined Function, or UDF, is only available to authorized users? Select TWO.

정답:
Explanation:
The correct answers are A. The UDF definition code and
D. List of data imports.
A secure UDF is designed to protect sensitive implementation details. Secure UDFs help prevent unauthorized users from viewing the function body and other details that could expose business logic or sensitive references.
Why A is correct:
The definition code of a secure UDF is hidden from unauthorized users. This protects the logic used inside the function.
Why D is correct:
The list of imported files or data imports associated with the secure UDF is also protected from unauthorized users because it may reveal sensitive implementation details.
Why the other options are incorrect:
B. The return type is generally part of the function signature and must be visible so users can understand how to call and use the function.
C. Parameter types are also part of the function signature and are visible to users who need to call the UDF.
E. The handler language may be visible as part of function metadata and is not the best answer for protected secure UDF information.
Official Snowflake documentation reference:
Snowflake documentation explains that secure UDFs hide internal details, including the function definition and sensitive implementation information, from unauthorized users.
Reference: Snowflake Documentation ― Secure UDFs; Snowflake Documentation ― User-defined functions; SnowPro Core Study Guide ― Security and Access Control.

Question No : 5


Which function, when combined with a COPY INTO <location> command, will convert the rows in a relational table to a single VARIANT column while the rows are being unloaded?

정답:
Explanation:
The correct answer is B. OBJECT_CONSTRUCT.
When unloading relational table data into semi-structured formats such as JSON , OBJECT_CONSTRUCT can be used to convert each relational row into an object. The resulting object can be represented as a single VARIANT value.
Why B is correct:
OBJECT_CONSTRUCT creates an object from key-value pairs. When used with *, it can construct an object from all columns in a row.
Example concept:
COPY INTO @my_stage/output/
FROM (
SELECT OBJECT_CONSTRUCT(*)
FROM my_table
)
FILE_FORMAT This transforms each relational row into a JSON-style object during unload.
Why the other options are incorrect:
A. ARRAY_AGG aggregates multiple values into an array, but it does not convert each relational row into an object.
C. TO_VARIANT converts a value to VARIANT, but it does not automatically construct a structured object from all row columns.
D. OBJECT_AGG is an aggregate function that creates an object from key-value pairs across rows, not the usual function for converting each relational row into a single object during unload.
Official Snowflake documentation reference:
Snowflake documentation explains that OBJECT_CONSTRUCT returns an object constructed from key-value pairs and can be used with COPY INTO <location> to unload relational rows as semi-structured data.
Reference: Snowflake Documentation ― OBJECT_CONSTRUCT; Snowflake Documentation ― Unloading relational data to JSON; Snowflake Documentation ― COPY INTO <location>; SnowPro Core Study Guide ― Working with Semi-Structured Data.

Question No : 6


What Multi-Factor Authentication, or MFA, service is provided by Snowflake?

정답:
Explanation:
The correct answer is C. Duo Security.
Snowflake provides integrated Multi-Factor Authentication through Duo Security. MFA adds an additional verification step beyond username and password authentication, improving account security.
Why C is correct:
Snowflake’s native MFA integration uses Duo Security. Users can enroll in MFA and authenticate using Duo-supported methods.
Why the other options are incorrect:
A. Microsoft Entra ID can be used as an identity provider for federated authentication, but it is not the MFA service provided natively by Snowflake.
B. Google Authenticator is a common authenticator app, but it is not Snowflake’s native MFA service.
D. Microsoft Authenticator is also a common MFA app, but Snowflake’s built-in MFA service is Duo Security.
Official Snowflake documentation reference:
Snowflake documentation describes Snowflake MFA as being powered by Duo Security.
Reference: Snowflake Documentation ― Multi-factor authentication; Snowflake Documentation ― User authentication; SnowPro Core Study Guide ― Security and Access Control.

Question No : 7


Which privilege is required to grant a database role to another role?

정답:
Explanation:
The correct answer is B. OWNERSHIP on the database role.
A database role is a securable object within a database. To grant a database role to another role, the granting role must have the authority to manage that database role. The OWNERSHIP privilege on the database role gives full control over the database role, including the ability to grant it.
Why B is correct:
The owner of a database role can grant that database role to another database role or account role, depending on the supported grant relationship.
Example concept:
GRANT DATABASE ROLE database1.db_role1 TO ROLE account_role1;
To perform this action, the executing role must have appropriate authority over database1.db_role1, such as OWNERSHIP.
Why the other options are incorrect:
A. USAGE on the database allows access to the database namespace, but it does not grant authority to grant a database role.
C. CREATE ROLE applies to creating account roles, not granting database roles.
D. MANAGE GRANTS can allow broad grant management, but the specific required object-level privilege in this question is OWNERSHIP on the database role.
Official Snowflake documentation reference:
Snowflake documentation explains that database roles are securable objects and that ownership provides full control over the object, including grant management.
Reference: Snowflake Documentation ― Database roles; Snowflake Documentation ― GRANT DATABASE ROLE; Snowflake Documentation ― Access control privileges; SnowPro Core Study Guide ― Security and Access Control.

Question No : 8


If Role_A owns Role_B, what permissions does Role_A have based on this relationship?

정답:
Explanation:
The correct answer is C. Role_A can grant or revoke access to the role.
In Snowflake, the OWNERSHIP privilege on an object gives full control over that object. A role can own another role. If Role_A owns Role_B, then Role_A has control over Role_B, including the ability to manage grants involving that role.
Why C is correct:
Ownership of a role allows the owning role to manage the role. This includes granting the role to users or other roles and revoking those grants.
Why the other options are incorrect:
A. Ownership of a role does not automatically mean the owner inherits all privileges assigned to that role. Privilege inheritance happens through role grants in the role hierarchy, not merely through ownership.
B. Role_A can use Role_B privileges only if Role_B is granted to Role_A in the role hierarchy. Ownership alone is not the same as inheritance.
D. A task requires appropriate task privileges, such as OPERATE or ownership, and account-level task execution privileges where applicable. Ownership of a role does not automatically allow executing tasks assigned to that role.
Official Snowflake documentation reference:
Snowflake documentation explains that roles are securable objects and that the OWNERSHIP privilege grants full control over an object. Role inheritance is separate and occurs when one role is granted to another role.
Reference: Snowflake Documentation ― Access control overview; Snowflake Documentation ― Role hierarchy and privilege inheritance; Snowflake Documentation ― GRANT ROLE; Snowflake Documentation ― OWNERSHIP privilege; SnowPro Core Study Guide ― Security and Access Control.

Question No : 9


In addition to the SELECT privilege, what other privilege must a role have to select from a table in database1.schema1?

정답:
Explanation:
The correct answer is D. The USAGE privilege on the database and the schema.
To query a table in Snowflake, a role needs the SELECT privilege on the table. In addition, the role must have USAGE on the containing database and schema so it can resolve and access the object path.
Why D is correct:
For a table named:
database1.schema1.table1
A role generally needs:
USAGE ON DATABASE database1
USAGE ON SCHEMA database1.schema1
SELECT ON TABLE database1.schema1.table1
Without USAGE on the database and schema, the role cannot access the namespace that contains the table, even if SELECT exists on the table.
Why the other options are incorrect:
A. There is no USAGE privilege on a table for this purpose. SELECT is the table-level privilege needed to read data.
B. OWNERSHIP on the schema is not required to query a table.
C. REFERENCES is used for foreign key/reference-related behavior and is not required for simple SELECT queries.
Official Snowflake documentation reference:
Snowflake documentation explains that access to objects requires privileges on the object and appropriate USAGE privileges on parent containers, such as the database and schema.
Reference: Snowflake Documentation ― Access control privileges; Snowflake Documentation ― Overview of access control; SnowPro Core Study Guide ― Security and Access Control.

Question No : 10


What is a benefit of using Snowflake directory tables?

정답:
Explanation:
The correct answer is D. Directory tables can be joined with other tables in Snowflake.
A directory table stores file-level metadata for files in a stage. This metadata can be queried using SQL, which means it can also be filtered, selected from, and joined with other Snowflake tables.
Why D is correct:
Because directory table metadata can be queried like table data, users can join that metadata with other Snowflake tables. This is useful for workflows where file metadata needs to be compared with control tables, audit tables, or processing logs.
Example concept:
SELECT d.relative_path, l.load_status
FROM DIRECTORY(@my_stage) d
LEFT JOIN load_log l
ON d.relative_path Why the other options are incorrect:
A. Directory tables store file-level metadata, but not in a temporary table. They are associated with stages.
B. Directory tables do not have their own independent privilege model. Access is controlled through privileges on the associated stage.
C. Any user cannot configure directory table privileges independently.
Official Snowflake documentation reference:
Snowflake documentation explains that directory tables store file-level metadata about staged files and that users can query this metadata with SQL, enabling joins with other tables.
Reference: Snowflake Documentation ― Directory tables; Snowflake Documentation ― Stages; SnowPro Core Study Guide ― Data Loading and Unloading.

Question No : 11


What is the first step when creating a Data Exchange in Snowflake?

정답:
Explanation:
The correct answer is D. Contact Snowflake Support.
Important correction:
The provided answer A. Create an organization ID is not the best answer. A Snowflake organization is required for certain marketplace and sharing features, but users do not typically “create an organization ID” as the first procedural step for setting up a Data Exchange.
Why D is correct:
A Data Exchange is a private data hub that allows providers and consumers to securely share data. Creating or enabling a Data Exchange typically requires Snowflake involvement. The first step is to contact Snowflake Support or a Snowflake representative to enable or configure the Data Exchange.
Why the other options are incorrect:
A. An organization identifier may be involved in account and organization-level administration, but creating an organization ID is not the first step to create a Data Exchange.
B. CREATE LISTING is used for creating listings after the provider/share setup exists.
C. CREATE SHARE creates a share object, but it is not the first step for creating the Data Exchange itself.
Official Snowflake documentation reference:
Snowflake documentation describes Data Exchange as a controlled data sharing hub and indicates that setting up a Data Exchange requires working with Snowflake.
Reference: Snowflake Documentation ― Data Exchange; Snowflake Documentation ― Secure Data Sharing; SnowPro Core Study Guide ― Data Protection and Governance.

Question No : 12


A user needs to load Snowflake files from a stage that contains data from the past 5 years while using the least amount of operational overhead. The file names follow a specific format, such as files ending in _01.gz.
Which command should be used to load the data from 2024?

정답:
Explanation:
The correct answer is B. Use the COPY INTO command using the PATTERN parameter to define the needed files.
The PATTERN parameter in the COPY INTO <table> command allows Snowflake to load only files whose names match a specified regular expression. This is useful when a stage contains many files and the required files can be identified by a naming pattern, such as year or suffix.
Why B is correct:
The user needs to load a subset of staged files from a 5-year collection and wants the least operational overhead. Using PATTERN avoids manually listing files, removing files, or downloading and restaging data.
Example concept:
COPY INTO target_table
FROM @my_stage
PATTERN Why the other options are incorrect:
A. Individually loading files creates more manual work and higher operational overhead.
C. Removing unwanted files is risky and unnecessary. It also changes the staged file set.
D. Downloading files with GET, creating a new stage, and reloading files adds unnecessary operational complexity.
Official Snowflake documentation reference:
Snowflake documentation explains that the PATTERN option in COPY INTO <table> specifies a regular expression pattern used to match staged file names for loading.
Reference: Snowflake Documentation ― COPY INTO <table>; Snowflake Documentation ― PATTERN copy option; SnowPro Core Study Guide ― Data Loading and Unloading.

Question No : 13


What are the results of the NULL_COUNT Data Metric Function, or DMF, used to verify?

정답:
Explanation:
The correct answer is D. The volume of the data.
The NULL_COUNT Data Metric Function returns the number of NULL values in a column. This type of metric is used to verify data quality by measuring the amount, or volume, of missing values.
Why D is correct:
NULL_COUNT counts how many rows contain NULL in a specified column. Since it produces a count, it is used to evaluate the volume of missing data.
Example concept:
SELECT SNOWFLAKE.CORE.NULL_COUNT(
SELECT column_name FROM my_table
);
This returns the number of NULL values found in the selected column.
Why the other options are incorrect:
A. Accuracy verifies whether data values are correct, but NULL_COUNT only counts missing values .
B . Uniqueness is verified with metrics that check duplicate or distinct values, not NULL_COUNT.
C. Freshness measures how current or recent the data is, not how many nulls exist .
Official Snowflake documentation reference:
Snowflake documentation describes NULL_COUNT as a system Data Metric Function that returns the number of NULL values in a column.
Reference: Snowflake Documentation ― Data Metric Functions; Snowflake Documentation ― SNOWFLAKE.CORE.NULL_COUNT; SnowPro Core Study Guide ― Data Protection and Governance.

Question No : 14


A Snowflake user creates this stored procedure:
PROCEDURE SALES_REPORT(MONTH INT, YEAR INT);
Which statement will remove the stored procedure?

정답:
Explanation:
The correct answer is B. DROP PROCEDURE SALES_REPORT(INT, INT);.
In Snowflake, stored procedures can be overloaded. This means multiple procedures can have the same name but different argument signatures. Because of this, when dropping a stored procedure, the procedure name and argument data types are used to identify the exact procedure to remove.
Why B is correct:
The procedure was created with two arguments:
MONTH INT, YEAR INT
When dropping the procedure, Snowflake uses the argument data types, not the argument names.
Therefore, the correct statement is:
DROP PROCEDURE SALES_REPORT(INT, INT);
Why the other options are incorrect:
A. The argument names are not included in the drop signature. Snowflake expects the argument data types.
C. This includes only argument names without data types, which is not the correct procedure signature syntax.
D. This does not identify the procedure signature and is not sufficient when dropping a stored procedure.
Official Snowflake documentation reference:
Snowflake documentation for DROP PROCEDURE explains that the procedure name and argument data types are required to identify the stored procedure to drop.
Reference: Snowflake Documentation ― DROP PROCEDURE; Snowflake Documentation ― Stored procedures; SnowPro Core Study Guide ― SQL and Snowflake Objects.

Question No : 15


Which functions are used to aggregate values into an array? Select TWO.

정답:
Explanation:
The clearly correct answer from the listed options is A. ARRAY_AGG.
Important correction:
The provided answer A, D is not fully correct if the question is asking about aggregate functions. ARRAY_CONSTRUCT creates an array from explicitly supplied values, but it does not aggregate values across multiple rows.
Why A is correct:
ARRAY_AGG is an aggregate function. It aggregates input values from multiple rows into a single array.
Example:
SELECT ARRAY_AGG(product_id)
FROM orders;
This returns an array containing product_id values from multiple rows.
Why D is not an aggregate function:
ARRAY_CONSTRUCT creates an array from the values passed into the function.
Example:
SELECT ARRAY_CONSTRUCT('A', 'B', 'C');
This creates an array from listed expressions, but it does not aggregate values across rows.
Why the other options are incorrect:
B. ARRAY_SLICE returns a subset of an existing array.
C. ARRAY_APPEND appends a value to an existing array.
E. ARRAY_TO_STRING converts an array to a string .
Official Snowflake documentation reference:
Snowflake documentation describes ARRAY_AGG as an aggregate function that returns the input values, pivoted into an array. ARRAY_CONSTRUCT is documented as a scalar function that constructs an array from input expressions.
Reference: Snowflake Documentation ― ARRAY_AGG; Snowflake Documentation ― ARRAY_CONSTRUCT; SnowPro Core Study Guide ― Working with Semi-Structured Data.

 / 74
Snowflake