{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"redocly_category":"Products","product_name":"Data Workbench","type":"markdown"},"seo":{"title":"Logical View Security Modes","description":"Learn about logical view security modes in databases, including DEFINER and INVOKER modes, and how they control permissions when accessing tables through views.","siteUrl":"https://docs.treasure.ai","lang":"en-US","jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.treasure.ai/","name":"Treasure AI","url":"https://www.treasure.ai/","logo":"https://www.treasure.ai/hubfs/assets/images/logos/primary-logo.svg"},{"@type":"WebSite","@id":"https://docs.treasure.ai/#website","name":"Treasure AI Documentation","url":"https://docs.treasure.ai/","inLanguage":["en","ja"],"publisher":{"@id":"https://www.treasure.ai/"}}]},"llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"logical-view-security-modes","__idx":0},"children":["Logical View Security Modes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Logical views support two security modes that control how permissions are evaluated when accessing tables referenced by the view: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DEFINER"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["INVOKER"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The security mode determines whose permissions are used when the view accesses underlying tables:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DEFINER mode"]},": The view executes with the permissions of the view ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["owner"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["INVOKER mode"]},": The view executes with the permissions of the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["query executor"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The default security mode is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DEFINER"]},", which follows the standard convention used by most database systems."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The security mode doesn't matter when a view references only tables that are stored in the same database as the view, because access control is performed at the database level. Security modes become relevant when views reference tables across different databases."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"definer-mode-default","__idx":2},"children":["DEFINER Mode (Default)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With DEFINER mode, queries against the view are executed using the permissions of the user who created (owns) the view, not the user executing the query."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"when-to-use-definer-mode","__idx":3},"children":["When to Use DEFINER Mode"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use DEFINER mode when you want to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Provide controlled access to sensitive data"]},": Allow users to query specific columns or filtered rows without granting them direct access to the underlying tables"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Simplify permission management"]},": Grant permissions once to the view owner instead of to every user who needs to query the view"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create abstraction layers"]},": Hide complex security logic behind a simple view interface"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example","__idx":4},"children":["Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"CREATE VIEW filtered_data.customers\nSECURITY DEFINER\nAS\nSELECT customer_id, customer_name, country\nFROM source_data.customers\nWHERE country IN ('US', 'CA', 'MX');\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In this example:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The view is created in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filtered_data"]}," database, while the referenced table is in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data"]}," database"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The view owner has permission to access the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data.customers"]}," table"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Users who query ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filtered_data.customers"]}," do ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," need direct permission to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data"]}," database or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data.customers"]}," table"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["All users see only customers from US, CA, or MX, regardless of their own permissions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The view executes with the owner's permissions, which include access to the full ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data.customers"]}," table"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Since access control is at the database level, to leverage DEFINER security mode effectively, the view should be defined in a different database from the database where the referenced tables are stored."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"definer-mode-with-nested-views","__idx":5},"children":["DEFINER Mode with Nested Views"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When views reference other views, each view's security mode is evaluated independently:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"-- view_a references table_c\nCREATE VIEW view_a\nSECURITY DEFINER\nAS SELECT * FROM table_c;\n\n-- view_b references view_a\nCREATE VIEW view_b\nSECURITY DEFINER\nAS SELECT * FROM view_a;\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a query executes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SELECT * FROM view_b"]},":"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["view_b"]}," is accessed with the permissions of query executor"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["view_a"]}," is accessed with the permissions of view_a's owner (DEFINER mode)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["table_c"]}," is accessed with the permissions of view_a's owner (DEFINER mode)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"invoker-mode","__idx":6},"children":["INVOKER Mode"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With INVOKER mode, queries against the view are executed using the permissions of the user who is running the query, not the view owner."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"when-to-use-invoker-mode","__idx":7},"children":["When to Use INVOKER Mode"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use INVOKER mode when you want to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enforce user-level permissions"]},": Ensure each user sees only data they're authorized to access based on their own permissions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Simplify query logic without changing security"]},": Provide reusable query templates while maintaining existing permission models"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Audit who accessed what"]},": Track access based on the actual query executor, not the view owner"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-1","__idx":8},"children":["Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"CREATE VIEW analytics.all_customer_orders\nSECURITY INVOKER\nAS\nSELECT o.order_id, o.customer_id, o.amount, c.customer_name\nFROM source_data.orders o\nJOIN source_data.customers c ON o.customer_id = c.customer_id;\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In this example:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The view is created in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["analytics"]}," database, while the referenced tables are in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data"]}," database"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Users must have permission to access both the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data.orders"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data.customers"]}," tables"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Each user sees only the data they're authorized to see based on their own permissions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If a user lacks permission to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_data.customers"]}," table, the query will fail"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"invoker-mode-with-nested-views","__idx":9},"children":["INVOKER Mode with Nested Views"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When views reference other views with INVOKER mode:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"-- view_a references table_c\nCREATE VIEW view_a\nSECURITY INVOKER\nAS SELECT * FROM table_c;\n\n-- view_b references view_a\nCREATE VIEW view_b\nSECURITY INVOKER\nAS SELECT * FROM view_a;\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a query executes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SELECT * FROM view_b"]},":"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["view_b"]}," is accessed with the permissions of the query executor (INVOKER mode)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["view_a"]}," is accessed with the permissions of the query executor (INVOKER mode)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["table_c"]}," is accessed with the permissions of the query executor (INVOKER mode)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"nested-view-limitations","__idx":10},"children":["Nested View Limitations"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A logical view with DEFINER security mode should not reference a logical view with INVOKER security mode. This combination may lead to unexpected permission behavior and is not recommended."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"comparison-table","__idx":11},"children":["Comparison Table"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Aspect"},"children":["Aspect"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"DEFINER Mode"},"children":["DEFINER Mode"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"INVOKER Mode"},"children":["INVOKER Mode"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Permissions Used"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["View owner's permissions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Query executor's permissions"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use Case"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Controlled access to sensitive data"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["User-level permission enforcement"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Permission Setup"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Grant permissions to view owner only"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Grant permissions to all users"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security Benefit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Restrict data access to specific columns/rows"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enforce existing permission model"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Default"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"specifying-security-mode","__idx":12},"children":["Specifying Security Mode"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"when-creating-a-view","__idx":13},"children":["When Creating a View"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When creating a view, specify the security mode in the CREATE VIEW statement:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"-- DEFINER mode (default)\nCREATE VIEW view_name\nSECURITY DEFINER\nAS\nSELECT * FROM table_name;\n\n-- INVOKER mode\nCREATE VIEW view_name\nSECURITY INVOKER\nAS\nSELECT * FROM table_name;\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you don't specify a security mode, DEFINER is used by default."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"changing-security-mode","__idx":14},"children":["Changing Security Mode"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can change the security mode through the Data Workbench UI or using SQL."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Using the UI:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to the view detail page in Data Workbench"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select the menu (⋯) and choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edit Details"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edit Logical View Details"]}," dialog, select:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Definer"]},": Uses the permissions of the view creator"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Invoker"]},": Uses the permissions of the current user"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Confirm"]}," to apply the change"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/logical-view-edit-details-dialog.e55c3c71ef4577f32e40badcd4c2eb9904ce516dcade6a1ff89fe06a9b57e635.4c190181.png","alt":"Edit Logical View Details dialog"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Using SQL:"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To change the security mode via SQL, use CREATE OR REPLACE VIEW:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"sql","header":{"controls":{"copy":{}}},"source":"-- Change to INVOKER mode\nCREATE OR REPLACE VIEW view_name\nSECURITY INVOKER\nAS\nSELECT * FROM table_name;\n","lang":"sql"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using CREATE OR REPLACE VIEW, you must re-specify the complete query definition."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"important-considerations","__idx":15},"children":["Important Considerations"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"view-ownership-matters-for-definer-mode","__idx":16},"children":["View Ownership Matters for DEFINER Mode"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The view owner's permissions are critical when using DEFINER mode"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the view owner is deleted, views with DEFINER mode will stop working"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Before deleting a user who owns DEFINER views, delegate ownership to another user with appropriate permissions"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"column-level-security-limitations","__idx":17},"children":["Column-Level Security Limitations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Columns of logical views cannot be annotated with tags for data classification"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If a user has a column permission with colulmn permission (cannot view non-tagged columns), they cannot use logical views in queries"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["This limitation applies regardless of security mode"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":18},"children":["Next Steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/customer-data-platform/data-workbench/databases/logical-views"},"children":["Logical Views"]}," - Complete guide to creating, viewing, and managing logical views"]}]}]},"headings":[{"value":"Logical View Security Modes","id":"logical-view-security-modes","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"DEFINER Mode (Default)","id":"definer-mode-default","depth":2},{"value":"When to Use DEFINER Mode","id":"when-to-use-definer-mode","depth":3},{"value":"Example","id":"example","depth":3},{"value":"DEFINER Mode with Nested Views","id":"definer-mode-with-nested-views","depth":3},{"value":"INVOKER Mode","id":"invoker-mode","depth":2},{"value":"When to Use INVOKER Mode","id":"when-to-use-invoker-mode","depth":3},{"value":"Example","id":"example-1","depth":3},{"value":"INVOKER Mode with Nested Views","id":"invoker-mode-with-nested-views","depth":3},{"value":"Nested View Limitations","id":"nested-view-limitations","depth":2},{"value":"Comparison Table","id":"comparison-table","depth":2},{"value":"Specifying Security Mode","id":"specifying-security-mode","depth":2},{"value":"When Creating a View","id":"when-creating-a-view","depth":3},{"value":"Changing Security Mode","id":"changing-security-mode","depth":3},{"value":"Important Considerations","id":"important-considerations","depth":2},{"value":"View Ownership Matters for DEFINER Mode","id":"view-ownership-matters-for-definer-mode","depth":3},{"value":"Column-Level Security Limitations","id":"column-level-security-limitations","depth":3},{"value":"Next Steps","id":"next-steps","depth":2}],"frontmatter":{"seo":{"title":"Logical View Security Modes","description":"Learn about logical view security modes in databases, including DEFINER and INVOKER modes, and how they control permissions when accessing tables through views."}},"lastModified":"2026-06-17T07:22:53.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/customer-data-platform/data-workbench/databases/logical-view-security-modes","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}