<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Limited QMC Access in Management &amp; Governance</title>
    <link>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1598691#M31552</link>
    <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;We would like to give limited access to few users to QMC. Below is the requirement.&lt;/P&gt;&lt;P&gt;1. Users can see only Apps section in QMC&lt;/P&gt;&lt;P&gt;2. They can see those apps which are present under the stream on which they have access. Example: User has access to streams 'ABC' and 'XYZ'. Both the streams have 5 apps saved under them. Thus users can see total 10 apps from QMC.&lt;/P&gt;&lt;P&gt;3. Users can publish, import, export, duplicate and change the owner of these 10 appsfrom QMC.&lt;/P&gt;&lt;P&gt;How can we achieve this from QMC? I don't want to give them Root admin or Content admin access as it gives almost complete access of QMC.&lt;/P&gt;&lt;P&gt;Thanks !!!&lt;/P&gt;</description>
    <pubDate>Wed, 29 Jan 2025 17:06:43 GMT</pubDate>
    <dc:creator>swapnilrodge</dc:creator>
    <dc:date>2025-01-29T17:06:43Z</dc:date>
    <item>
      <title>Limited QMC Access</title>
      <link>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1598691#M31552</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;We would like to give limited access to few users to QMC. Below is the requirement.&lt;/P&gt;&lt;P&gt;1. Users can see only Apps section in QMC&lt;/P&gt;&lt;P&gt;2. They can see those apps which are present under the stream on which they have access. Example: User has access to streams 'ABC' and 'XYZ'. Both the streams have 5 apps saved under them. Thus users can see total 10 apps from QMC.&lt;/P&gt;&lt;P&gt;3. Users can publish, import, export, duplicate and change the owner of these 10 appsfrom QMC.&lt;/P&gt;&lt;P&gt;How can we achieve this from QMC? I don't want to give them Root admin or Content admin access as it gives almost complete access of QMC.&lt;/P&gt;&lt;P&gt;Thanks !!!&lt;/P&gt;</description>
      <pubDate>Wed, 29 Jan 2025 17:06:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1598691#M31552</guid>
      <dc:creator>swapnilrodge</dc:creator>
      <dc:date>2025-01-29T17:06:43Z</dc:date>
    </item>
    <item>
      <title>Re: Limited QMC Access</title>
      <link>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1598733#M31553</link>
      <description>&lt;P&gt;The first part is easy, create a security rule with:&lt;/P&gt;&lt;P&gt;Resource filter:&amp;nbsp; &lt;A href="http://help.qlik.com/en-US/sense/February2019/Subsystems/ManagementConsole/Content/Sense_QMC/available-resource-filters.htm" target="_self"&gt;QmcSection_App&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions:Assign users or group&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;This gives the users access to the App menu in the QMC.&amp;nbsp; At this point they should only see apps that they have access.&amp;nbsp; If they own an app and have appropriate access to streams, they can do everything you want except change owner.&lt;/P&gt;&lt;P&gt;To have all the requests that you want for applications that they don't own, will require more security rules.&amp;nbsp; We have tested using the&amp;nbsp;&lt;A href="https://help.qlik.com/en-US/sense/April2019/Subsystems/ManagementConsole/Content/Sense_QMC/custom-properties-overview.htm" target="_self"&gt;custom properties&lt;/A&gt;&amp;nbsp;and are waiting for permission to migrate our new security rules to our development and production environments.&lt;/P&gt;&lt;P&gt;Changing the owner is a bit tricky because they will need access to the user directory.&amp;nbsp; A simpler solution is to duplicate the app and publish over the existing app.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2019 15:10:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1598733#M31553</guid>
      <dc:creator>jwjackso</dc:creator>
      <dc:date>2019-07-03T15:10:56Z</dc:date>
    </item>
    <item>
      <title>Re: Limited QMC Access</title>
      <link>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1599093#M31554</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for quick reply.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please explain how you have implemented the below part in your environment?&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#800000"&gt;"To have all the requests that you want for applications that they don't own, will require more security rules.&amp;nbsp; We have tested using the&amp;nbsp;&lt;A href="https://help.qlik.com/en-US/sense/April2019/Subsystems/ManagementConsole/Content/Sense_QMC/custom-properties-overview.htm" target="_self" rel="nofollow noopener noreferrer"&gt;custom properties&lt;/A&gt;&amp;nbsp;and are waiting for permission to migrate our new security rules to our development and production environments."&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thanks !!!&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jul 2019 13:12:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1599093#M31554</guid>
      <dc:creator>swapnilrodge</dc:creator>
      <dc:date>2019-07-04T13:12:06Z</dc:date>
    </item>
    <item>
      <title>Re: Limited QMC Access</title>
      <link>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1599541#M31555</link>
      <description>&lt;P&gt;Our goal evolved.&amp;nbsp; Initially it was to grant access using custom properties.&amp;nbsp; Then we also wanted to restrict access to which application a user could view within a stream.&amp;nbsp; We use Active Directory for authentication and these rules were created in a Feb 2019 environment.&lt;/P&gt;&lt;P&gt;Custom properties:&lt;/P&gt;&lt;P&gt;ADGroup&amp;nbsp; (Apps,Streams) - the values are the names of the AD groups that are used to grant access to Qlik.&amp;nbsp; If we want to just limit access to a stream, the custom property is added to the stream.&amp;nbsp; If we want to limit access to an application within a stream, the custom property is added to the stream and the application.&lt;/P&gt;&lt;P&gt;Developer (Users) - the values are the AD groups that are used to grant access to Qlik.&amp;nbsp; These are added to the users that are developers.&amp;nbsp; The combination of developer custom property and stream/app custom property determines which apps you can edit/delete/duplicate/export and which streams you can publish to.&lt;/P&gt;&lt;P&gt;UserType (Users) - Only 1 value right now, Scheduler.&amp;nbsp; We have some developer that we allow to create tasks&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Security Rules&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Disable the delivered rule: Stream&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;New Security Rules&lt;/STRONG&gt;:&amp;nbsp; I found it easier to audit and validate the rules when I separated some rules by Context.&amp;nbsp; The *Default rules control access to applications that do not have a custom property.&amp;nbsp; The *Exception rules control access to applications that have a custom property assigned.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_AppLimiteUserDefault:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "App" and resource.@ADGroup.empty() and resource.stream.@ADGroup = user.group) and (resource.resourcetype = "App" and !resource.stream.empty())&lt;/P&gt;&lt;P&gt;Context: Only in hub&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_AppLimitedUseException:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "App" and !resource.@ADGroup.empty() and resource.@ADGroup = user.group) and (resource.resourcetype = "App" and !resource.stream.empty())&lt;/P&gt;&lt;P&gt;Context: Only in hub&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_AppLimitedUseQMCDefault:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "App" and resource.@ADGroup.empty() and &lt;A href="mailto:resource.stream.@ADGroup=user.@Developer" target="_blank" rel="noopener"&gt;resource.stream.@ADGroup=user.@Developer&lt;/A&gt;) and (resource.resourcetype = "App" and !resource.stream.empty())&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_AppLimitedUseQMCException:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "App" and !resource.@ADGroup.empty() and &lt;A href="mailto:resource.@ADGroup=user.@Developer" target="_blank" rel="noopener"&gt;resource.@ADGroup=user.@Developer&lt;/A&gt;) and (resource.resourcetype = "App" and !resource.stream.empty())&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_AppObjectAccess:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App.Object_*&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "App.Object" or&lt;/P&gt;&lt;P&gt;resource.objectType = "app_appscript" or&lt;/P&gt;&lt;P&gt;resource.objectType = "loadmodel") and&lt;/P&gt;&lt;P&gt;resource.published ="true"&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_CreateTask&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Resource Filter: ReloadTask*,SchemaEvent*,CompositeEvent*&lt;/P&gt;&lt;P&gt;Actions: Create&lt;/P&gt;&lt;P&gt;Conditions: ((&lt;A href="mailto:user.@UserType=%22Scheduler%22)" target="_blank" rel="noopener"&gt;user.@UserType="Scheduler")&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_DeleteExport:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Delete, Export, Export data&lt;/P&gt;&lt;P&gt;Conditions: ((&lt;A href="mailto:user.@Developer=resource.stream.@ADGroup)" target="_blank" rel="noopener"&gt;user.@Developer=resource.stream.@ADGroup)&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_DeveloperQmcAppsMenu:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: QmcSection_App&lt;/P&gt;&lt;P&gt;Conditions: ((user.group like "001EDW_*Developer"))&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_DuplicateAppDefault:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Publish, Duplicate&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;((resource.stream.@ADGroup=user.@Developer and resource.resourcetype="App" and &lt;A href="mailto:resource.@ADGroup.empty())" target="_blank" rel="noopener"&gt;resource.@ADGroup.empty())&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_DuplicateAppException&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Publish, Duplicate&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;((resource.@ADGroup=user.@Developer and&amp;nbsp; resource.stream.@ADGroup=user.@Developer and resource.resourcetype="App" and &lt;A href="mailto:!resource.@ADGroup.empty())" target="_blank" rel="noopener"&gt;!resource.@ADGroup.empty())&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_ReloadTaskDefault:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: ReloadTask*,SchemaEvent*,CompositeEvent*,ExecutionResult*&lt;/P&gt;&lt;P&gt;Actions: Read, Update, Delete&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;((&lt;A href="mailto:user.@UserType=%22Scheduler%22)" target="_blank" rel="noopener"&gt;user.@UserType="Scheduler")&lt;/A&gt;) and&lt;/P&gt;&lt;P&gt;((resource.resourcetype="ReloadTask" and&lt;/P&gt;&lt;P&gt;resource.app.stream.@ADGroup=user.@Developer and&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:resource.app.@ADGroup.Empty()" target="_blank" rel="noopener"&gt;resource.app.@ADGroup.Empty()&lt;/A&gt;) or&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "SchemaEvent" or resource.resourcetype = "CompositeEvent"))&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_ReloadTaskException&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Resource Filter: ReloadTask*,SchemaEvent*,CompositeEvent*,ExecutionResult*&lt;/P&gt;&lt;P&gt;Actions: Read, Update, Delete&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;((user.@UserType="Scheduler"))&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;((resource.resourcetype="ReloadTask" and&lt;/P&gt;&lt;P&gt;resource.app.stream.@ADGroup=user.@Developer and&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:!resource.app.@ADGroup.Empty()" target="_blank" rel="noopener"&gt;!resource.app.@ADGroup.Empty()&lt;/A&gt; and resource.app.@ADGroup = &lt;A href="mailto:user.@Developer" target="_blank" rel="noopener"&gt;user.@Developer&lt;/A&gt;) or&lt;/P&gt;&lt;P&gt;(resource.resourcetype = "SchemaEvent" or resource.resourcetype = "CompositeEvent"))&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_SchedulerQMCTasksMenu:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: QmcSection_Task,QmcSection_ReloadTask,QmcSection_Event,QmcSection_SchemaEvent,QmcSection_CompositeEvent&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions: !user.IsAnonymous() and ((&lt;A href="mailto:user.@UserType=%22Scheduler%22)" target="_blank" rel="noopener"&gt;user.@UserType="Scheduler")&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_Stream:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: Stream_*&lt;/P&gt;&lt;P&gt;Actions; Read&lt;/P&gt;&lt;P&gt;Conditions: ((&lt;A href="mailto:user.group=resource.@ADGroup)" target="_blank" rel="noopener"&gt;user.group=resource.@ADGroup)&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Only in hub&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_StreamPublish&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;Resource Filter: Stream_*&lt;/P&gt;&lt;P&gt;Actions: Publish&lt;/P&gt;&lt;P&gt;Conditions: ((&lt;A href="mailto:resource.@ADGroup=user.@Developer)" target="_blank" rel="noopener"&gt;resource.@ADGroup=user.@Developer)&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_StreamQMC:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: Stream_*&lt;/P&gt;&lt;P&gt;Actions: Read&lt;/P&gt;&lt;P&gt;Conditions: ((&lt;A href="mailto:resource.@ADGroup=user.@Developer)" target="_blank" rel="noopener"&gt;resource.@ADGroup=user.@Developer)&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Context: Only in QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_UpdateAppDefault:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Update&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;((resource.resourcetype = "App" and resource.@ADGroup.empty() and resource.stream.@ADGroup=user.@Developer and !resource.stream.empty()))&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;NEWRULE_UpdateAppException:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Resource Filter: App*&lt;/P&gt;&lt;P&gt;Actions: Update&lt;/P&gt;&lt;P&gt;Conditions:&lt;/P&gt;&lt;P&gt;((resource.resourcetype = "App" and !resource.@ADGroup.empty() and resource.@ADGroup=user.@Developer and !resource.stream.empty()) )&lt;/P&gt;&lt;P&gt;Context: Both in hub and QMC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jul 2019 21:28:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Limited-QMC-Access/m-p/1599541#M31555</guid>
      <dc:creator>jwjackso</dc:creator>
      <dc:date>2019-07-05T21:28:35Z</dc:date>
    </item>
  </channel>
</rss>

