Control which tables and rows each user can see within a database
Both Database Access and Row Level Permissions are managed using the Resource Access Pane. Databases are where connection data lives once it is brought into Kroo. Databases can be managed in one of three configurations:
Kroo-hosted Data Warehouse
Client-hosted Data Warehouse
Multiple client-hosted Data Warehouses
Kroo supports connections to a wide variety of data destination platforms. Currently, only Microsoft SQL and Microsoft Fabric data destinations are compatible with Kroo’s Row Level Permissions capabilities.
Data brought into the Kroo platform may be sensitive, including financial or performance management data. Managing Database Access at the Resource level controls user and group visibility within the Kroo app. Row Level Permissions then control which database tables and rows a user can see within the database itself. RLP is required for users to view data, even if Data Warehouse access is granted at the Resource level.To configure RLP, select Row-level permissions in the desired database. This opens the Row Level Permissions window:
Row Level Permissions are managed in groups. To create a new group, select + Create Group. In the New Group window, enter a Group name, add an optional Description, and select Continue to logic.In the following window, select which tables to include in the group and define the rules that govern their visibility. To do so, select + Add Table.
Then select the table or tables you would like to grant access to and select Add table(s):
Expand your selected table or tables by clicking the chevron next to the table name, then select your desired filter type. Options are:
No filter (full access)
Conditions
Raw SQL
Define your preferred filter, if applicable, then select Save Filter and Continue to role access.
You will then be brought to the Resource Access Pane, where you can set which roles and users should be included in this Row Level Permissions group. RLP can be revised and edited later from the Row Level Permissions window.
Members see all rows in this table. Use this when the table doesn’t contain sensitive data or when members should have unrestricted access to it.
Build a row filter with the point-and-click condition builder.
Field
Description
Column
The column to filter on (e.g., project_id, company, region)
Operator
The comparison: equals, not equals, contains, greater than, less than, etc.
Value
The value to match (e.g., 123, West, Active)
When multiple conditions are added, choose a logic mode:
ALL conditions must match (AND) — every condition must be true for a row to be visible
ANY condition must match (OR) — at least one condition must be true
Example: to restrict members to Project ID 123 in the kroo_procore.projects table, set Column = project_id, Operator = equals, Value = 123.
Write a custom SQL WHERE clause for advanced filtering — useful when conditions are complex or need to reference other columns dynamically.
region = 'West' AND status != 'Closed'
Use Preview Table Data to see the table’s columns and sample rows before building your filter.
A user can belong to multiple groups — their effective access is the union of all their groups. To check a group’s filters from a member’s point of view, use Test as User in Kris AI Context Settings.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kroo","colors":{"primary":"#0c7c59","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://dkq5g4kc673o0.cloudfront.net/Kroo%20Logo","dark":"https://dkq5g4kc673o0.cloudfront.net/Kroo%20Logo"},"favicon":"https://mintcdn.com/kroo/Bw1eAmcSMLIYa-Xk/favicon.ico?fit=max\u0026auto=format\u0026n=Bw1eAmcSMLIYa-Xk\u0026q=85\u0026s=8665f3c89de110a01675ff3763e5965d","navbar":{"links":[{"href":"mailto:implementations@getkroo.com","label":"Support"}]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/kroo-construction"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:implementations@getkroo.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kroo","hasAudioNarration":false,"actualSubdomain":"kroo","customDomains":["guide.getkroo.com"],"gitSource":{"type":"github","owner":"getkroo","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adbc5f23501f66ae6b01257","collectionId":"4a7529fd-b11b-44b4-b0f4-9fd9d6c6ff00","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adbc5f23501f66ae6b01257"},"feedback":{"edits":true,"issues":true,"thumbs":true},"entitlements":{},"buildId":"6adbc5f23501f66ae6b01257","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Platform","count":9},{"language":"default","tag":"Admin \u0026 Support","count":7},{"language":"default","tag":"API Reference","count":6},{"language":"default","tag":"Using the App","count":5},{"language":"default","tag":"Setup","count":5},{"language":"default","tag":"Permissions","count":4},{"language":"default","tag":"Schedule Files","count":4},{"language":"default","tag":"Two-Way Sync","count":3},{"language":"default","tag":"Data Lifecycle","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".navbar-logo img{width:auto;height:auto;max-height:64px}"}],"page":{"pagePath":"permissions/row-level-permissions","slug":"/permissions/row-level-permissions","pageMetadata":{"title":"Row-Level Permissions","description":"Control which tables and rows each user can see within a database","icon":"filter","href":"/permissions/row-level-permissions"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Control which tables and rows each user can see within a database\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Info,OptimizedImage,Tab,Table,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Both `,_jsx(_components.strong,{children:`Database Access`}),` and `,_jsx(_components.strong,{children:`Row Level Permissions`}),` are managed using the `,_jsx(_components.a,{href:`/permissions/resources`,children:`Resource Access Pane`}),`. Databases are where connection data lives once it is brought into Kroo. Databases can be managed in one of three configurations:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Kroo-hosted Data Warehouse`}),`\n`,_jsx(_components.li,{children:`Client-hosted Data Warehouse`}),`\n`,_jsx(_components.li,{children:`Multiple client-hosted Data Warehouses`}),`\n`]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Kroo supports connections to a wide variety of data destination platforms. Currently, only Microsoft SQL and Microsoft Fabric data destinations are compatible with Kroo’s Row Level Permissions capabilities.`})}),`\n`,_jsx(_components.p,{children:`Data brought into the Kroo platform may be sensitive, including financial or performance management data. Managing Database Access at the Resource level controls user and group visibility within the Kroo app. Row Level Permissions then control which database tables and rows a user can see within the database itself. RLP is required for users to view data, even if Data Warehouse access is granted at the Resource level.`}),`\n`,_jsxs(_components.p,{children:[`To configure RLP, select `,_jsx(_components.code,{children:`Row-level permissions`}),` in the desired database. This opens the Row Level Permissions window:`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=26c6af000733f172ce97f858b633b830`,alt:`Row-Level Permissions window listing groups`,\"data-og-width\":`1856`,width:`1856`,\"data-og-height\":`892`,height:`892`,\"data-path\":`images/permissions/rlp-groups.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?w=280\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=ce2d2928daf74f6826d806941d36b15b 280w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?w=560\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=501d6dbdcb0a2557bc14ba4ecdab34ba 560w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?w=840\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=77e630379b2435926861cc74b5dbc2b4 840w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=d3bcb82caea9b2905532af1c033e0bbd 1100w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=bfd5360897bf74c6ea749d115b17266c 1650w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-groups.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=04d0eb2e9e81eaac44ea889751721a60 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Row Level Permissions are managed in groups. To create a new group, select `,_jsx(_components.strong,{children:`+ Create Group`}),`. In the New Group window, enter a `,_jsx(_components.code,{children:`Group name`}),`, add an optional `,_jsx(_components.code,{children:`Description`}),`, and select `,_jsx(_components.strong,{children:`Continue to logic`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`In the following window, select which tables to include in the group and define the rules that govern their visibility. To do so, select `,_jsx(_components.code,{children:`+ Add Table`}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=4a8cd6492bd1caac9c292b4bb1dd923f`,alt:`New group window on the Table and Row Logic step`,\"data-og-width\":`1534`,width:`1534`,\"data-og-height\":`830`,height:`830`,\"data-path\":`images/permissions/rlp-new-group.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?w=280\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=82265150e674e982e96dbb257fbd935c 280w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?w=560\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=2166913d62ce98114303a5f7fbb45c71 560w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?w=840\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=7e0ab4b9862b9c89e79783e26ecd1518 840w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=3bed15c9e2066234244c935f4f18c46c 1100w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=2786c3db08b12549c57d3f1bf75b9c78 1650w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-new-group.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=ad50d8fdd9038364037a88abf3c98a16 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Then select the table or tables you would like to grant access to and select `,_jsx(_components.code,{children:`Add table(s)`}),`:`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=88bba379d14dffc5208eeafc8a4a4a37`,alt:`Table Access picker with one table selected`,\"data-og-width\":`1630`,width:`1630`,\"data-og-height\":`1346`,height:`1346`,\"data-path\":`images/permissions/rlp-add-tables.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?w=280\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=2c3df6775fcc64a8c642ae6a864cef16 280w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?w=560\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=49bc38106ef2a1b0316a789c90e6674d 560w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?w=840\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=f32188ee458937115b4f4e38b4e8dacf 840w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=95364df2c3a5d2d6f71c2b62b724ff1e 1100w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=96e2e07e51084eee48caeb1926ce5718 1650w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-add-tables.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=ae606615c52ea57202ef6b27503cfbf4 2500w`})}),`\n`,_jsx(_components.p,{children:`Expand your selected table or tables by clicking the chevron next to the table name, then select your desired filter type. Options are:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`No filter (full access)`}),`\n`,_jsx(_components.li,{children:`Conditions`}),`\n`,_jsx(_components.li,{children:`Raw SQL`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Define your preferred filter, if applicable, then select `,_jsx(_components.code,{children:`Save Filter`}),` and `,_jsx(_components.code,{children:`Continue to role access`}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=8a712dfafef6e766008acd3686af32c0`,alt:`Conditions filter on a table`,\"data-og-width\":`1636`,width:`1636`,\"data-og-height\":`1250`,height:`1250`,\"data-path\":`images/permissions/rlp-filter.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?w=280\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=14e61224beefa518a04698c9c1e2eea0 280w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?w=560\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=83c74714dc9828924756aaaea4853447 560w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?w=840\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=9e67a0173b6be68161ded7db526ba623 840w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=05f6236bc4e49c51f0444f6995d77363 1100w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=6eb06432740e7b030db671a058736a24 1650w, https://mintcdn.com/kroo/1IqYuu3AJ9rJD_tS/images/permissions/rlp-filter.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1IqYuu3AJ9rJD_tS\u0026q=85\u0026s=6392ce5b0ea225221a8ef33eee6bfeac 2500w`})}),`\n`,_jsx(_components.p,{children:`You will then be brought to the Resource Access Pane, where you can set which roles and users should be included in this Row Level Permissions group. RLP can be revised and edited later from the Row Level Permissions window.`}),`\n`,_jsx(Heading,{level:`2`,id:`filter-types`,children:`Filter types`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`No filter (full access)`,id:`no-filter-full-access`,children:_jsxs(_components.p,{children:[`Members see `,_jsx(_components.strong,{children:`all rows`}),` in this table. Use this when the table doesn’t contain sensitive data or when members should have unrestricted access to it.`]})}),_jsxs(Tab,{title:`Conditions`,id:`conditions`,children:[_jsx(_components.p,{children:`Build a row filter with the point-and-click condition builder.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Column`})}),_jsxs(_components.td,{children:[`The column to filter on (e.g., `,_jsx(_components.code,{children:`project_id`}),`, `,_jsx(_components.code,{children:`company`}),`, `,_jsx(_components.code,{children:`region`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Operator`})}),_jsxs(_components.td,{children:[`The comparison: `,_jsx(_components.code,{children:`equals`}),`, `,_jsx(_components.code,{children:`not equals`}),`, `,_jsx(_components.code,{children:`contains`}),`, `,_jsx(_components.code,{children:`greater than`}),`, `,_jsx(_components.code,{children:`less than`}),`, etc.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Value`})}),_jsxs(_components.td,{children:[`The value to match (e.g., `,_jsx(_components.code,{children:`123`}),`, `,_jsx(_components.code,{children:`West`}),`, `,_jsx(_components.code,{children:`Active`}),`)`]})]})]})]}),_jsx(_components.p,{children:`When multiple conditions are added, choose a logic mode:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ALL conditions must match (AND)`}),` — every condition must be true for a row to be visible`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`ANY condition must match (OR)`}),` — at least one condition must be true`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Example:`}),` to restrict members to Project ID 123 in the `,_jsx(_components.code,{children:`kroo_procore.projects`}),` table, set Column = `,_jsx(_components.code,{children:`project_id`}),`, Operator = `,_jsx(_components.code,{children:`equals`}),`, Value = `,_jsx(_components.code,{children:`123`}),`.`]})]}),_jsxs(Tab,{title:`Raw SQL`,id:`raw-sql`,children:[_jsxs(_components.p,{children:[`Write a custom SQL `,_jsx(_components.code,{children:`WHERE`}),` clause for advanced filtering — useful when conditions are complex or need to reference other columns dynamically.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`sql`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`sql`,children:_jsxs(_components.code,{language:`sql`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`region `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'West'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` AND`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` status`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Closed'`})]}),`\n`]})})})]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Preview Table Data`}),` to see the table’s columns and sample rows before building your filter.`]})}),`\n`,_jsxs(_components.p,{children:[`A user can belong to multiple groups — their effective access is the `,_jsx(_components.strong,{children:`union`}),` of all their groups. To check a group’s filters from a member’s point of view, use `,_jsx(_components.strong,{children:`Test as User`}),` in Kris AI Context Settings.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Row-Level Permissions","description":"Control which tables and rows each user can see within a database","icon":"filter","href":"/permissions/row-level-permissions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Filter types","slug":"filter-types","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"kroo","siteName":"Kroo","title":"Row-Level Permissions - Kroo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-18T14:47:25.747Z","originalFileLocation":"permissions/row-level-permissions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Control which tables and rows each user can see within a database\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kroo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Row-Level Permissions - Kroo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Control which tables and rows each user can see within a database\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kroo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://guide.getkroo.com/permissions/row-level-permissions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kroo.mintlify.app/_mintlify/api/og/v2?division=Permissions\u0026amp;title=Row-Level+Permissions\u0026amp;description=Control+which+tables+and+rows+each+user+can+see+within+a+database\u0026amp;theme=5d018ee466719ff565192a11\u0026amp;signature=c6ab125a358372cc78278a87e687e741d77e0f3cda79309dbe388aaa7fb9eb48\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Row-Level Permissions - Kroo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Control which tables and rows each user can see within a database\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kroo.mintlify.app/_mintlify/api/og/v2?division=Permissions\u0026amp;title=Row-Level+Permissions\u0026amp;description=Control+which+tables+and+rows+each+user+can+see+within+a+database\u0026amp;theme=5d018ee466719ff565192a11\u0026amp;signature=c6ab125a358372cc78278a87e687e741d77e0f3cda79309dbe388aaa7fb9eb48\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kroo/HftUu_hPSPzYZPZZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kroo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0c7c59\">\u003clink data-mint-head rel=\"canonical\" href=\"https://guide.getkroo.com/permissions/row-level-permissions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/permissions/row-level-permissions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://guide.getkroo.com/#organization\",\"name\":\"Kroo\",\"url\":\"https://guide.getkroo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://dkq5g4kc673o0.cloudfront.net/Kroo%20Logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https://guide.getkroo.com#website\",\"name\":\"Kroo\",\"url\":\"https://guide.getkroo.com\",\"publisher\":{\"@id\":\"https://guide.getkroo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://guide.getkroo.com/permissions/row-level-permissions#webpage\",\"url\":\"https://guide.getkroo.com/permissions/row-level-permissions\",\"name\":\"Row-Level Permissions\",\"description\":\"Control which tables and rows each user can see within a database\",\"dateModified\":\"2026-10-18T14:47:25.747Z\",\"isPartOf\":{\"@id\":\"https://guide.getkroo.com#website\"},\"breadcrumb\":{\"@id\":\"https://guide.getkroo.com/permissions/row-level-permissions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://guide.getkroo.com/permissions/row-level-permissions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Permissions\",\"item\":\"https://guide.getkroo.com/permissions/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Row-Level Permissions\",\"item\":\"https://guide.getkroo.com/permissions/row-level-permissions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://guide.getkroo.com/permissions/row-level-permissions#article\",\"headline\":\"Row-Level Permissions\",\"name\":\"Row-Level Permissions\",\"description\":\"Control which tables and rows each user can see within a database\",\"url\":\"https://guide.getkroo.com/permissions/row-level-permissions\",\"mainEntityOfPage\":{\"@id\":\"https://guide.getkroo.com/permissions/row-level-permissions#webpage\"},\"dateModified\":\"2026-10-18T14:47:25.747Z\",\"publisher\":{\"@id\":\"https://guide.getkroo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://guide.getkroo.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kroo\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kroo","nav":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:implementations@getkroo.com"}]},"tabs":[{"tab":"Platform","pages":[{"title":"Platform","href":""}]},{"tab":"Guides","groups":[{"group":"Using the App","pages":[{"title":"Pipeline Analytics","icon":"chart-line","href":"/pipeline-analytics"},{"title":"Embed Dashboards","icon":"chart-mixed","href":"/embed-dashboards"},{"title":"Sync Schedule","icon":"clock","href":"/sync-schedule"},{"title":"Personalize Your Data","icon":"sliders","href":"/analytics-modules"},{"title":"Prompting Guidelines","icon":"wand-magic-sparkles","href":"/prompting-guidelines"}]},{"group":"Analytics","pages":[{"title":"SQL Views and Basics","icon":"code","href":"/sql-views-and-basics"},{"title":"Data Viewer","icon":"table","href":"/data-viewer"}]},{"group":"Permissions","pages":[{"title":"Permissions Overview","icon":"shield-halved","href":"/permissions/overview"},{"title":"Roles","icon":"user-shield","href":"/permissions/roles"},{"title":"Resources","description":"Grant access to specific dashboards, projects, and databases","icon":"folder-tree","href":"/permissions/resources"},{"title":"Row-Level Permissions","icon":"filter","href":"/permissions/row-level-permissions"}]},{"group":"Integrations","pages":[{"title":"P6 \u0026 OPC File Uploads","description":"Upload and sync Oracle P6 and OPC schedule data to your data warehouse through the Kroo platform","icon":"file-arrow-up","href":"/p6-opc-file-uploads"},{"title":"Pipeline Status Monitoring","icon":"signal","href":"/pipeline-status"}]}]},{"tab":"Admin \u0026 Support","pages":[{"title":"Admin \u0026 Support","href":"/sso-setup"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/authentication/issue-an-access-token"}]}]},"title":"Row-Level Permissions - Kroo","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DYplxqhs.js","DynamicMarkdown-Cc6AuSHS.js","zoom-image-lightbox-BNnMwe0F.js","lightbox-handle-r17bVUz3.js"]}