<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:01:16 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-22733] Need SQL View like capability ..</title>
                <link>https://jira.mongodb.org/browse/SERVER-22733</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I&apos;d like to request the addition of a SQL View like capability for security. &lt;/p&gt;

&lt;p&gt;To be as brief as possible-&lt;/p&gt;

&lt;p&gt;   .  You have a collection with 8 keys. Remove all permission from this&lt;br/&gt;
      collection for a given user. Create a view that references 6 of the 8&lt;br/&gt;
      keys. Give permission to this view to the same user. Now this user &lt;br/&gt;
      can read/write/whatever a vertical slice of this collection. This serves&lt;br/&gt;
      a use case of data privacy.&lt;/p&gt;

&lt;p&gt;      OR, create the view with all columns, but a filter criteria is in place.&lt;br/&gt;
      Eg., where &lt;/p&gt;
{ &quot;state&quot; = &quot;NY&quot; }
&lt;p&gt;. Now this user can read/write/whatever&lt;br/&gt;
      a horizontal slice of this collection. This serves a use case of data&lt;br/&gt;
      privacy, and multi-tenancy.&lt;/p&gt;

&lt;p&gt;   &amp;#8211;&lt;/p&gt;

&lt;p&gt;   .  How others (SQL) does this-  &lt;/p&gt;

&lt;p&gt;      The view either enforces the underlying security of the source/&lt;br/&gt;
      referenced collections, or not. &lt;/p&gt;

&lt;p&gt;      By default, security is inherited from the source collection. If you &lt;br/&gt;
      can&apos;t read/write the source table, the view will not give you this &lt;br/&gt;
      ability. In this use case, the view acts more like a macro, and its&lt;br/&gt;
      value add is to centralize definitions, or code.&lt;/p&gt;

&lt;p&gt;      If the view is created &lt;/p&gt;
{ &quot;with_admin_authority&quot; : true }
&lt;p&gt;, then the view&lt;br/&gt;
      overrides base permissions. This is how you suppress access to&lt;br/&gt;
      base collections, yet still poke through any read/write any subsets.&lt;br/&gt;
      In this case, the user can do whatever read/write they were given &lt;br/&gt;
      the view object, and not the underlying/base collection object. &lt;/p&gt;

&lt;p&gt;      You might also want a &lt;/p&gt;
{ &quot;with_check_option&quot; }
&lt;p&gt;. In effect, if you&lt;br/&gt;
      should only see &quot;NY&quot;, can you insert &quot;NJ&quot; ?&lt;/p&gt;

&lt;p&gt;   .  Phase 1, I&apos;d be happy with projection and filter, and we&apos;ll call these&lt;br/&gt;
      &quot;simple views&quot;. They are writable like a normal collection.&lt;/p&gt;

&lt;p&gt;      Phase 2, &quot;compound views&quot;, containing aggregated keys or simply&lt;br/&gt;
      keys that are calculated. MongoDB doesn&apos;t know how to simply write&lt;br/&gt;
      back to a calculated key. You can read compound views, but not &lt;br/&gt;
      update.&lt;/p&gt;

&lt;p&gt;   .  Query optimizer enhancement-&lt;/p&gt;

&lt;p&gt;     If the view has a filter as part of its definition, and the user adds&lt;br/&gt;
     filters, yadda, in their request, you should someday flatten all of that,&lt;br/&gt;
     remove duplicates and such. This is a performance feature only.&lt;/p&gt;

&lt;p&gt;   . Views on views-&lt;/p&gt;

&lt;p&gt;     Added someday. Not needed on day one perhaps.&lt;/p&gt;


</description>
                <environment></environment>
        <key id="266545">SERVER-22733</key>
            <summary>Need SQL View like capability ..</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="3">Duplicate</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="daniel.farrell">Daniel Farrell</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Feb 2016 19:15:58 +0000</created>
                <updated>Fri, 7 Oct 2016 15:16:08 +0000</updated>
                            <resolved>Thu, 18 Feb 2016 20:33:12 +0000</resolved>
                                                                    <component>Concurrency</component>
                    <component>Querying</component>
                    <component>Security</component>
                    <component>Usability</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="1402978" author="dan@10gen.com" created="Fri, 7 Oct 2016 15:16:08 +0000"  >&lt;p&gt;This is supported in the current implementation coming in 3.4 and available in development versions.  See &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-142&quot; title=&quot;Read-only views over collection data.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-142&quot;&gt;&lt;del&gt;SERVER-142&lt;/del&gt;&lt;/a&gt; for links to documentation. &lt;/p&gt;</comment>
                            <comment id="1402841" author="jmjava" created="Fri, 7 Oct 2016 13:24:01 +0000"  >&lt;p&gt;Views on Views - is this something that is on the Roadmap?&lt;/p&gt;</comment>
                            <comment id="1177898" author="stennie" created="Thu, 18 Feb 2016 20:33:12 +0000"  >&lt;p&gt;Hi Daniel,&lt;/p&gt;

&lt;p&gt;Thanks for your feedback. I&apos;m going to close this as a duplicate of the existing feature suggestion for writable views (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-10788&quot; title=&quot;Writable views&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-10788&quot;&gt;SERVER-10788&lt;/a&gt;). There is also a prerequisite feature suggestion for readable views (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-142&quot; title=&quot;Read-only views over collection data.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-142&quot;&gt;&lt;del&gt;SERVER-142&lt;/del&gt;&lt;/a&gt;). Please upvote &amp;amp; watch these issues for updates.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br/&gt;
Stephen&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="90094">SERVER-10788</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="10279">SERVER-142</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 18 Feb 2016 19:49:33 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 years, 18 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>dan@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 years, 18 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.farrell</customfieldvalue>
            <customfieldvalue>dan@mongodb.com</customfieldvalue>
            <customfieldvalue>jmjava</customfieldvalue>
            <customfieldvalue>stephen.steneker@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkftb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsik2n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hs9x5j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>