The ADA-C01 exam validates your expertise in administering Snowflake at an advanced level. This certification, part of the SnowPro Certification and SnowPro Advanced Certification path, is designed for professionals managing security, governance, performance, and data sharing across enterprise Snowflake deployments. This page outlines the exam structure, core topics, and preparation strategies to help you study effectively and build confidence before test day.
Use this topic map to guide your study for Snowflake ADA-C01 (SnowPro Advanced: Administrator Certification) within the SnowPro Certification and SnowPro Advanced Certification path.
The ADA-C01 exam combines knowledge-based and scenario-driven questions to assess both conceptual understanding and practical decision-making in real Snowflake environments.
Questions progress in difficulty, requiring you to apply knowledge to multi-step problems that reflect actual production scenarios.
Effective preparation involves mapping each domain to focused study blocks, practicing with realistic questions, and connecting concepts across security, governance, and operations workflows. Allocate 4-6 weeks for comprehensive study, dedicating time proportionally to each domain based on your current knowledge gaps.
Explore other Snowflake certifications: view all Snowflake exams.
Strengthen your preparation with up-to-date resources from validexamdumps.com. These materials align to ADA-C01 and cover practical scenarios with clear explanations.
Visit the exam page to download the PDF, Online Practice Test, or get a bundle discount for both formats: SnowPro Advanced: Administrator Certification.
Security, RBAC, and User Administration typically account for 25-30% of the exam, followed closely by Performance Monitoring and Tuning at 20-25%. The remaining domains (Account Management, Data Sharing, and Disaster Recovery) are equally important but may have slightly lower question counts. Review the official exam guide to confirm current weightings, as these can shift with product updates.
In practice, these domains overlap continuously. You might set up RBAC policies (Domain 1) to control who accesses shared data (Domain 4), monitor query performance (Domain 3) to optimize costs, apply data governance rules (Domain 2) to classify sensitive information, and ensure replication (Domain 5) is configured for disaster recovery. Understanding these connections helps you answer scenario questions that span multiple domains.
Most candidates benefit from 2+ years of Snowflake administration or data engineering experience. Ideally, you should have practical exposure to user and role management, query optimization, and basic account administration. If your experience is limited, focus practice labs on configuring RBAC, interpreting Query Profile output, and setting up data shares in a trial account.
Candidates often confuse privilege levels (account vs. database vs. schema), overlook the difference between Time Travel and Fail-safe retention windows, and misunderstand when to use reader accounts versus full shares. Another frequent error is selecting the fastest solution without considering cost implications or security trade-offs. Always read scenario questions carefully and consider the full context before choosing an answer.
In your last week, focus on weak domains identified in practice tests rather than re-reading all material. Do a final timed mock exam to simulate test conditions, then spend 2-3 days reviewing explanations for any missed questions. On the day before your exam, review key definitions, privilege hierarchies, and disaster recovery procedures, but avoid cramming new topics that may confuse you.
A Snowflake account is configured with SCIM provisioning for user accounts and has bi-directional synchronization for user identities. An Administrator with access to SECURITYADMIN uses the Snowflake UI to create a user by issuing the following commands:
use role USERADMIN;
create or replace role DEVELOPER_ROLE;
create user PTORRES PASSWORD = 'hello world!' MUST_CHANGE_PASSWORD = FALSE
default_role = DEVELOPER_ROLE;
The new user named PTORRES successfully logs in, but sees a default role of PUBLIC in the web UI. When attempted, the following command fails:
use DEVELOPER_ROLE;
Why does this command fail?
According to the Snowflake documentation1, creating a user with a default role does not automatically grant that role to the user. The user must be explicitly granted the role by the role owner or a higher-level role. Therefore, the USERADMIN role, which created the DEVELOPER_ROLE, needs to explicitly grant the DEVELOPER_ROLE to the new user PTORRES using the GRANT ROLE command. Otherwise, the user PTORRES will not be able to use the DEVELOPER_ROLE and will see the default role of PUBLIC in the web UI. Option A is incorrect because the DEVELOPER_ROLE does not need to be granted to SYSADMIN before user PTORRES can use the role. Option B is incorrect because the new role can take effect immediately after it is created and granted to the user, and does not depend on the USERADMIN role logging out. Option D is incorrect because the new role will not be affected by the identity provider synchronization, as it is created and managed in Snowflake.
A Snowflake user runs a complex SQL query on a dedicated virtual warehouse that reads a large amount of data from micro-partitions. The same user wants to run another
query that uses the same data set.
Which action would provide optimal performance for the second SQL query?
According to the Using Persisted Query Results documentation, the RESULT_SCAN function allows you to query the result set of a previous command as if it were a table. This can improve the performance of the second query by avoiding reading the same data from micro-partitions again. The other actions do not provide optimal performance for the second query because:
* Assigning additional clusters to the virtual warehouse does not affect the data access speed, but only the query execution speed. It also increases the cost of the warehouse.
* Increasing the STATEMENT_TIMEOUT_IN_SECONDS parameter in the session does not improve the performance of the query, but only allows it to run longer before timing out. It also increases the risk of resource contention and deadlock.
* Preventing the virtual warehouse from suspending between the running of the first and second queries does not guarantee that the data will be cached in memory, as Snowflake uses a least recently used (LRU) cache eviction policy. It also increases the cost of the warehouse.
https://docs.snowflake.com/en/user-guide/querying-persisted-results
The ACCOUNTADMIN of Account 123 works with Snowflake Support to set up a Data Exchange. After the exchange is populated with listings from other Snowflake accounts,
what roles in Account 123 are allowed to request and get data?
What roles or security privileges will allow a consumer account to request and get data from the Data Exchange? (Select TWO).
According to the Accessing a Data Exchange documentation, a consumer account can request and get data from the Data Exchange using either the ACCOUNTADMIN role or a role with the IMPORT SHARE and CREATE DATABASE privileges. The ACCOUNTADMIN role is the top-level role that has all privileges on all objects in the account, including the ability to request and get data from the Data Exchange. A role with the IMPORT SHARE and CREATE DATABASE privileges can also request and get data from the Data Exchange, as these are the minimum privileges required to create a database from a share. The other options are incorrect because:
* A. The SYSADMIN role does not have the privilege to request and get data from the Data Exchange, unless it is also granted the IMPORT SHARE and CREATE DATABASE privileges. The SYSADMIN role is a pre-defined role that has all privileges on all objects in the account, except for the privileges reserved for the ACCOUNTADMIN role, such as managing users, roles, and shares.
* B. The SECURITYADMIN role does not have the privilege to request and get data from the Data Exchange, unless it is also granted the IMPORT SHARE and CREATE DATABASE privileges. The SECURITYADMIN role is a pre-defined role that has the privilege to manage security objects in the account, such as network policies, encryption keys, and security integrations, but not data objects, such as databases, schemas, and tables.
* E. The IMPORT PRIVILEGES and SHARED DATABASE are not valid privileges in Snowflake. The correct privilege names are IMPORT SHARE and CREATE DATABASE, as explained above.
A Snowflake Administrator needs to set up Time Travel for a presentation area that includes facts and dimensions tables, and receives a lot of meaningless and erroneous
loT data. Time Travel is being used as a component of the company's data quality process in which the ingestion pipeline should revert to a known quality data state if any
anomalies are detected in the latest load. Data from the past 30 days may have to be retrieved because of latencies in the data acquisition process.
According to best practices, how should these requirements be met? (Select TWO).
According to the Understanding & Using Time Travel documentation, Time Travel is a feature that allows you to query, clone, and restore historical data in tables, schemas, and databases for up to 90 days. To meet the requirements of the scenario, the following best practices should be followed:
* The fact and dimension tables should have the same DATA_RETENTION_TIME_IN_DAYS. This parameter specifies the number of days for which the historical data is preserved and can be accessed by Time Travel. To ensure that the fact and dimension tables can be reverted to a consistent state in case of any anomalies in the latest load, they should have the same retention period. Otherwise, some tables may lose their historical data before others, resulting in data inconsistency and quality issues.
* The fact and dimension tables should be cloned together using the same Time Travel options to reduce potential referential integrity issues with the restored data. Cloning is a way of creating a copy of an object (table, schema, or database) at a specific point in time using Time Travel. To ensure that the fact and dimension tables are cloned with the same data set, they should be cloned together using the same AT or BEFORE clause. This will avoid any referential integrity issues that may arise from cloning tables at different points in time.
The other options are incorrect because:
* Related data should not be placed together in the same schema. Facts and dimension tables should each have their own schemas. This is not a best practice for Time Travel, as it does not affect the ability to query, clone, or restore historical data. However, it may be a good practice for data modeling and organization, depending on the use case and design principles.
* The DATA_RETENTION_TIME_IN_DAYS should be kept at the account level and never used for lower level containers (databases and schemas). This is not a best practice for Time Travel, as it limits the flexibility and granularity of setting the retention period for different objects. The retention period can be set at the account, database, schema, or table level, and the most specific setting overrides the more general ones. This allows for customizing the retention period based on the data needs and characteristics of each object.
* Only TRANSIENT tables should be used to ensure referential integrity between the fact and dimension tables. This is not a best practice for Time Travel, as it does not affect the referential integrity between the tables. Transient tables are tables that do not have a Fail-safe period, which means that they cannot be recovered by Snowflake after the retention period ends. However, they still support Time Travel within the retention period, and can be queried, cloned, and restored like permanent tables. The choice of table type depends on the data durability and availability requirements, not on the referential integrity.