BuildBotsBetter
BUILDBOTSBETTER
All Builds
Guided Build · ChatGPT Codex

Set Up SQL Server Express

Install a practice instance, prove a query and restore a backup.

2–3 hourswindowsFree practice; existing tool accounts may have plan limits.

Finish with: A Windows SQL Server Express practice instance with a verified connection, session-local SQL exercise, least-privilege connection plan, checksum-verified backup and separate restored practice database.

Progress stays in this browser. Export to keep a portable record.

Do this now

Walkthrough

A step demonstration outline; use optional narration while you follow it.

Resources for this step

Check the result

This browser checks the evidence format and your checklist. It cannot inspect your computer or certify a live login.

When it does not work

Finish-line test

Repeat the last product-specific checkpoint from a fresh practice input, preserve actual output, then complete the Build Bot Better guard and restore checks. Export the evidence.

Sources and verification limits

Sources checked 2026-10-05. SQL exercise can be tested under our own login on the existing host, but that does not prove a clean Express engine install. A Windows practice VM and administrator-provisioned identity are needed for a fully verified setup walk.

Complete lesson text and action cards

Source-owned text for offline reading and retrieval. Command success still requires actual local evidence.

Check the edition and supported OS

Open Microsoft’s current SQL Server downloads and edition documentation. Choose Express for a small free practice instance; confirm supported Windows version, CPU, RAM and disk requirements for that installer. Keep the existing live SQL instance unchanged. Record a distinct practice instance name.

Expected: The selected Express version, supported Windows host, requirements and practice instance name are recorded.

Run the official Express installer

On a disposable practice host, download the signed Microsoft Express installer. Choose a named instance such as BBBPRACTICE, save its exact instance name and complete the engine installation. Keep network access local; do not open firewall ports just to connect locally.

Expected: Setup reports success and the named SQL Server service is running.

windows

Get-Service | Where-Object { $_.Name -like "MSSQL*" } | Select-Object Name,Status

macos

# This course teaches a Windows Express service; use a prepared Windows practice VM.

linux

# This course teaches a Windows Express service; use a prepared Windows practice VM.

Open SSMS and connect locally

Install SQL Server Management Studio from Microsoft’s official download. Connect to localhost\BBBPRACTICE with your own authorized account on the practice host. For a self-signed local certificate, inspect the certificate/trust option only for this known local instance; do not disable certificate validation on remote servers.

Expected: SSMS connects to the exact practice instance and SELECT @@VERSION reports the chosen edition/version.

windows

# In an SSMS query window:
# SELECT @@VERSION AS version, SERVERPROPERTY('Edition') AS edition;

Run the session-local SQL exercise

Open practice.sql in the same SSMS connection and execute the whole file as one batch. The temporary table exists only in this session; it does not edit an application’s tables. Read the ordered results.

Expected: SQL PRACTICE PASS reports 2 rows, one completed; the result shows task 1 done and task 2 not done.

windows

# SSMS: open resources/practice.sql, connect to the practice instance, then Execute.

Write the connection contract

In connection-checklist.md, document the app’s needed database/schema and minimal read/write permissions. Have the administrator provision that dedicated login; keep its secret in a user-scoped environment/secret store. Do not enable a shared sa workflow. Verify the login can run its allowed query and cannot write a protected schema.

Expected: The app login is scoped to the practice data, credentials stay outside source, and allowed/denied checks are recorded.

Create a disposable practice database backup

In SSMS create BBBPractice on the disposable instance and add a small table with two known rows. Review backup-restore.sql and the default backup directory. Run the COPY_ONLY checksum backup and RESTORE VERIFYONLY. Record the backup path and successful checks.

Expected: The backup is created and checksum verification succeeds for BBBPractice.

Practice a distinct database restore

Use RESTORE FILELISTONLY and SSMS Restore Database to restore the backup as BBBPracticeRestored. Relocate data/log files to unique paths. Never use WITH REPLACE over a live database. Query the restored practice table and compare the original two rows.

Expected: BBBPracticeRestored contains the expected two rows in distinct data/log files.

Record the connection and backup routine

Fill connection-checklist.md with instance, own login, driver/certificate assumptions, query proof, backup verification and restore result. Express has no SQL Server Agent: plan a reviewed external scheduler with logs and failure alerts for future backups.

Expected: The checklist lets a new session connect, verify, back up and restore the practice data.

Write a repeatable onboarding checklist

Fill in onboarding-checklist.md for your agent. Record AGENTS.md, the tool’s user settings and memory folder, the assigned workspace, permissions, guard location, backup schedule, and a final proof task. Keep the checklist in your project.

Expected: The checklist contains a concrete path and owner for rules, memory, permissions, guard, backup, restore and final verification.

Demonstrate the variable-path limit safely

Run workspace_guard.py --self-test. Read the source: the target is resolved before deciding. The variable_target case points at the home folder but performs no filesystem operation. Compare this with a hook that sees only command text.

Expected: GUARD PASS reports inside allowed and profile, outside, variable-derived profile and workspace root denied; no deletion was executed.

windows

python workspace_guard.py --self-test

macos

python3 workspace_guard.py --self-test

linux

python3 workspace_guard.py --self-test

Verify the actual protection in your tool

For CLI tools, open the hook/permissions screen and confirm the configured guard is active. Use your tool’s documented pre-command hook protocol; the BBB working reference is linked in Sources. Run a harmless directory listing, then a guard dry-run targeting the profile. Do not execute a destructive profile probe. Grok Bot has no proven local shell guard here: use project-only tasks and reviewed actions, with backups.

Expected: A harmless command runs, the guard dry-run returns DENY, and the checklist records the actual hook protocol and active state or the Grok Bot limitation.

Enable a real backup of memory and project files

Connect a second backup drive. Windows: configure System Protection as additional recovery and use a scheduled copy/File History that explicitly includes hidden agent folders. macOS: configure Time Machine and verify dot folders are included. Linux: use a home backup such as restic/Deja Dup; Timeshift omits /home by default. Download the copy-only profile backup script for your platform, inspect it, and adapt the folder list to your tool. Record the last successful scheduled run; protect backup access because it may contain credentials.

Expected: A backup on another drive includes the tool’s user settings and memory folder and this project, and a successful schedule/time is recorded.

windows

.\profile-backup.ps1 -Destination D:\Backups\llm-profiles

macos

bash profile-backup.sh /Volumes/YourBackup/llm-profiles

linux

bash profile-backup.sh /media/YourBackup/llm-profiles

Practice a hash-verified restore

Run restore_drill.py with a separate backup directory. The script creates a new proof file, copies it, restores a second copy, and compares SHA256 hashes. Then restore one non-secret file from your actual agent memory backup into a separate scratch directory and open it; do not overwrite the live profile.

Expected: RESTORE PASS contains matching hashes; the actual memory file is readable after restoration into scratch.

windows

python restore_drill.py --backup-root D:\Backups\bbb-practice --work-root practice

macos

python3 restore_drill.py --backup-root /Volumes/YourBackup/bbb-practice --work-root practice

linux

python3 restore_drill.py --backup-root /media/YourBackup/bbb-practice --work-root practice