About motherduck-share-data
A skill that guides agents through sharing MotherDuck data with controlled access and visibility. It covers table and view selection, secure-view policies, recipient setup, and validation of shared data.
Key features
- 01Choose audience and visibility
- 02Filter shared tables and views
- 03Apply secure-view policies
- 04Grant recipient access
- 05Validate consumer-visible data
Use cases
- 01Sharing selected tables with a team
- 02Providing row- or column-filtered access
- 03Delivering a manually refreshed snapshot
MCP support
When MotherDuck MCP's `ask_docs_question` feature is available, the skill recommends using it to check current sharing documentation before relying on other sources.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ motherduckdb/ agent-skills --skill motherduck-share-dataAfter installing, type/motherduck-share-datain Claude Code to confirm it loaded.
Bundled filesreferences/SHARE_PLAYBOOK.md
Details
From the project READMEShare Data with MotherDuck
Source Of Truth
- Prefer the current MotherDuck sharing docs and SQL reference first.
- If the MotherDuck MCP
ask_docs_questionfeature is available, use it before falling back to public docs. - Keep the sharing model aligned with the documented behavior:
- zero-copy and metadata-only
- a database is the share source, with optional table/view filtering through
INCLUDE_PATTERN - optional secure views that filter rows, drop columns, or mask values for each consumer
- read-only recipients
- owner-controlled update and include-pattern policy
Prerequisites
A working connection, the source database, and the intended audience. Reuse these from context; related skills are available for missing setup or SQL details.
Default Posture
- Prefer
ACCESS RESTRICTEDplusGRANT READ ON SHARE ... TO ROLE ...for governed internal distribution. UseACCESS ORGANIZATIONonly when the caller deliberately wants its legacy organization-wide behavior. - Use
INCLUDE_PATTERNwhen every recipient of one share should see the same table/view subset. Create separate shares when audiences need different table subsets; when they differ only by rows, columns, or masked values, one share with secure views can serve them all. - Use
UPDATE MANUALwhen the recipient needs a stable snapshot or versioned delivery. - Use
ACCESS RESTRICTEDorVISIBILITY HIDDENwhen distribution should stay tightly controlled. - Confirm whether the recipient is an internal user, another organization, or public before choosing access and visibility.
- For write-heavy publishers, verify the DuckDB client version is one MotherDuck supports before relying on checkpoint or concurrent-write behavior during share-update workflows.
INCLUDE_PATTERNselects whole tables and views; never describe it as row- or column-level security. It works on native MotherDuck and fully managed DuckLake sources.- For row filtering, hidden columns, or masked values, add secure views to the share:
CREATE SHARE ... WITH SECURE VIEW REPLACES <table> AS (SELECT ...)orALTER SHARE ... ADD [OR REPLACE] SECURE VIEW. Key the policy oncurrent_email()for people,current_userfor service accounts, oris_role_in_session('<role>'). One share with secure views can replace a set of per-audience shares. Business and Enterprise plans; managing them in SQL needs DuckDB 1.5.6 or later and a read-write token. - A table the share exposes without a replacing secure view stays fully readable. Combine
INCLUDE_PATTERN(which tables) with secure views (which rows and columns) and keep macro schemas and mapping tables outside the pattern. - MotherDuck secure views are share policies. DuckDB's own
CREATE SECURE VIEWis only an optimizer barrier and restricts nothing.
Workflow
- Identify the exact database to publish and who should consume it.
- Decide the audience, visible table/view subset, discoverability, and freshness requirements before writing SQL.
- Preview and validate any include pattern against the live source catalog, then create the share with explicit access, visibility, update mode, and optional
INCLUDE_PATTERN. - If access is restricted, grant users or roles explicitly. If the share is hidden or link-based, distribute the share URL directly.
- Read the share back with
LIST SHARESorMD_INFORMATION_SCHEMA.OWNED_SHARES; for filtered shares, verify the stored pattern and consumer-visible catalog. For secure views, runSHOW SECURE VIEWS ON SHARE <name>and attach the share as a consumer to check the result; identity functions evaluate as whoever runs the test. - Have recipients
ATTACHthe shared database and query it read-only. - Use
ALTER SHARE ... SET|RESET INCLUDE_PATTERNfor table/view scope changes andALTER SHARE ... ADD|DROP SECURE VIEWfor policy changes (not both in one statement). AvoidCREATE OR REPLACE SHAREon a share with secure views; it drops any view it does not restate. If the share usesUPDATE MANUAL, the owner runsUPDATE SHAREand consumers runREFRESH DATABASEwhen a new snapshot is ready.
For answer, review, or planning requests, return the sharing design and SQL without provisioning. For create, update, grant, or revoke requests, perform the requested in-scope operation and validate the resulting access; ask before public exposure, destructive revocation, or unrelated grants.
References
Read only the reference sections needed for the current task.
- Read
references/SHARE_PLAYBOOK.mdfor the full SQL playbook, role grants, include-pattern rules, secure views, access/update decisions, consumer workflow, and common failure modes.
Related Skills
Load related skills only for missing capabilities; reuse established context.
motherduck-connectfor MotherDuck authentication and connection setupmotherduck-explorefor discovering databases, tables, columns, and existing sharesmotherduck-queryfor validating share SQL and downstream queriesmotherduck-duckdb-sqlfor DuckDB SQL syntax and lookup supportmotherduck-security-governancefor role design and access-boundary review