SnowTower End-User Guide
A skill for helping end-users navigate the SnowTower platform to get Snowflake access and start working with data.
Who This Skill Is For
- Data analysts who need to query Snowflake data
- Data scientists who need database access for analysis
- Engineers who need to connect applications to Snowflake
- New team members requesting their first Snowflake account
Quick Reference
Getting Access (3 Steps)
Step 1: Generate RSA Keys → Step 2: Submit Request → Step 3: Connect
(on your machine) (GitHub issue) (after approval)
Step 1: Generate Your RSA Keys
You MUST do this BEFORE requesting access.
# Generate RSA key pair (run on your local machine)
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -nocrypt -out ~/.ssh/snowflake_rsa_key.p8
openssl rsa -in ~/.ssh/snowflake_rsa_key.p8 -pubout -out ~/.ssh/snowflake_rsa_key.pub
# Secure your private key (IMPORTANT!)
chmod 400 ~/.ssh/snowflake_rsa_key.p8
# Display your PUBLIC key (copy this for the access request)
cat ~/.ssh/snowflake_rsa_key.pub
Output looks like:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
...many lines of characters...
-----END PUBLIC KEY-----
Key Security Rules
| Key Type | File | Share? |
|----------|------|--------|
| Private key | ~/.ssh/snowflake_rsa_key.p8 | NEVER share this |
| Public key | ~/.ssh/snowflake_rsa_key.pub | Safe to share |
Step 2: Request Access
- Go to the Access Request Form
- Select "New User Request"
- Fill in your details:
- Full name
- Email address
- Team/department
- Reason for access
- Paste your PUBLIC key (from Step 1)
- Submit the form
Typical approval time: 3-5 business days
Step 3: Connect to Snowflake
After your account is approved, you'll receive:
- Your username (usually FIRSTNAME_LASTNAME)
- The account identifier
- Your default role and warehouse
Using Snow CLI (Recommended)
# Add your connection
snow connection add \
--connection-name prod \
--account YOUR_ACCOUNT \
--user YOUR_USERNAME \
--authenticator SNOWFLAKE_JWT \
--private-key-path ~/.ssh/snowflake_rsa_key.p8
# Test the connection
snow sql -c prod -q "SELECT CURRENT_USER(), CURRENT_ROLE()"
Using Python
import snowflake.connector
conn = snowflake.connector.connect(
account='YOUR_ACCOUNT',
user='YOUR_USERNAME',
private_key_file_pwd=None,
private_key_file='~/.ssh/snowflake_rsa_key.p8',
warehouse='MAIN_WAREHOUSE',
role='YOUR_ROLE'
)
Using the Snowflake Web UI
- Go to your organization's Snowflake URL
- Enter your username
- Use the password provided by IT (not your RSA key)
- Enable MFA when prompted
What You Get After Approval
Your Default Role
New users typically receive a role like SNOWTOWER_USERS__T_ROLE which grants:
- Read access to shared production data
- Access to common warehouses
- Ability to create objects in your personal database
Your Personal Database
You get your own database: DEV_YOURNAME
-- Switch to your database
USE DATABASE DEV_YOURNAME;
-- Create schemas and tables freely
CREATE SCHEMA my_analysis;
CREATE TABLE my_analysis.test_data (id INT, value VARCHAR);
Your Default Warehouse
Usually MAIN_WAREHOUSE:
- Auto-suspends after 60 seconds of inactivity
- X-Small size by default
- Shared resource - be mindful of heavy queries
First Session Checklist
-- 1. Check your current context
SELECT CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE();
-- 2. See what databases you can access
SHOW DATABASES;
-- 3. See what roles you have
SHOW ROLES;
-- 4. Switch to your dev database
USE DATABASE DEV_YOURNAME;
-- 5. Create your first schema
CREATE SCHEMA IF NOT EXISTS sandbox;
USE SCHEMA sandbox;
-- 6. Test creating a table
CREATE TABLE test (id INT);
INSERT INTO test VALUES (1), (2), (3);
SELECT * FROM test;
DROP TABLE test;
Common Issues & Solutions
"Authentication failed"
Cause: RSA key mismatch or incorrect setup
Solution:
# Verify your private key is readable
ls -la ~/.ssh/snowflake_rsa_key.p8
# Check permissions (should be 400 or 600)
chmod 400 ~/.ssh/snowflake_rsa_key.p8
# Verify the public key matches what was submitted
cat ~/.ssh/snowflake_rsa_key.pub
"Insufficient privileges"
Cause: You don't have access to that object
Solution:
- Check you're using the correct role:
SELECT CURRENT_ROLE(); - Request additional access if needed via GitHub issue
"Warehouse is suspended"
Cause: Warehouse auto-suspended to save costs
Solution:
-- Just run a query - it auto-resumes
SELECT 1;
"Cannot connect to Snowflake"
Checklist:
- Is your account approved? (Check the GitHub issue)
- Is the account identifier correct?
- Is your private key path correct?
- Are you on the corporate network / VPN if required?
Getting More Access
Need access to additional databases, schemas, or roles?
- Open a new GitHub issue
- Specify exactly what you need access to
- Include business justification
- Your request will be reviewed by an admin
Two Authentication Methods
| Method | Use For | How | |--------|---------|-----| | RSA Key | CLI, scripts, applications | Private key file | | Password | Web UI only | Provided by IT |
Best Practice: Always use RSA key authentication for programmatic access. Only use password for the web interface.
Need Help?
- Access issues: Open a GitHub issue
- Connection problems: Check the troubleshooting section above
- General questions: Ask your team lead or Snowflake admin