Problem Note 31345: Metadata objects stored in a custom repository are not returned by client applications or metadata query results when they should be
If you have a scenario similar to the following:
- a Foundation repository and two custom repositories (RepA and RepB).
- two users (UserA and UserB).
- UserA has been granted permission to view objects in RepA and Foundation via the Default ACT.
- UserB has been granted permission to view objects in RepB and Foundation via the Default ACT.
- Each of the three repositories has a different library defined in it (LibF, LibA and LibB) and all three libraries are assigned to the same application server (such as SASMain).
Given this scenario, UserA should be able to access LibF and LibA, and UserB should be able to access LibF and LibB. And, in fact, if either UserA or UserB logs into SAS® Management Console, they can see the appropriate libraries.
However, other client applications that query the metadata using different techniques might receive incorrect results from the metadata server. For example, if you use
the SAS® Open Metadata Architecture API to submit a query like the following:
<GetMetadataObjects>
<Reposid>A0000001.A53J8Q6W</Reposid>
<Type>ServerContext</Type>
<Objects/>
<Ns>SAS</Ns>
<Flags>16780</Flags>
<Options>
<XMLSelect search="ServerContext[@Id='A53J8Q6W.AT000001']"/>
<Templates>
<ServerContext>
<DataPackages/>
</ServerContext>
</Templates>
</Options>
</GetMetadataObjects>
|
where REPOSID is the Foundation ID and the SERVERCONTEXT ID is that of the application server (SASMain), you might not see all the libraries that your user ID should have access to. The actual results will vary depending upon the order that the custom repositories were initially registered in the server.
For example, if repository RepA was registered before RepB and UserA runs the query above, he will correctly see libraries LibF and LibA. However, if UserB runs the query, he will only see library LibF. UserB should, in fact, see both libraries LibF and LibB.
As the query is being processed it loops through all repositories and libraries, looking for a match for the requested ServerContext association. As long as it continues to find libraries to which that user has access, the results are returned correctly. The problem occurs when a user encounters an authorization denial (such as when UserB attempts to access repository RepA). At this point, the server stops and makes no further attempt to look in additional repositories. The results returned for UserB are incomplete because the query stopped before reading repository RepB.
Note that while this example scenario refers to libraries, the same problem can occur for any type of metadata object you attempt to access.
Select the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SAS System | Base SAS | z/OS | 9.1 TS1M3 SP4 | |
Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.1 TS1M3 SP4 | |
Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.1 TS1M3 SP4 | |
Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.1 TS1M3 SP4 | |
Microsoft Windows XP 64-bit Edition | 9.1 TS1M3 SP4 | |
Microsoft® Windows® for x64 | 9.1 TS1M3 SP4 | |
Microsoft Windows 2000 Advanced Server | 9.1 TS1M3 SP4 | |
Microsoft Windows 2000 Datacenter Server | 9.1 TS1M3 SP4 | |
Microsoft Windows 2000 Server | 9.1 TS1M3 SP4 | |
Microsoft Windows 2000 Professional | 9.1 TS1M3 SP4 | |
Microsoft Windows NT Workstation | 9.1 TS1M3 SP4 | |
Microsoft Windows Server 2003 Datacenter Edition | 9.1 TS1M3 SP4 | |
Microsoft Windows Server 2003 Enterprise Edition | 9.1 TS1M3 SP4 | |
Microsoft Windows Server 2003 Standard Edition | 9.1 TS1M3 SP4 | |
Microsoft Windows XP Professional | 9.1 TS1M3 SP4 | |
64-bit Enabled AIX | 9.1 TS1M3 SP4 | |
64-bit Enabled HP-UX | 9.1 TS1M3 SP4 | |
64-bit Enabled Solaris | 9.1 TS1M3 SP4 | |
HP-UX IPF | 9.1 TS1M3 SP4 | |
Linux | 9.1 TS1M3 SP4 | |
Linux on Itanium | 9.1 TS1M3 SP4 | |
OpenVMS Alpha | 9.1 TS1M3 SP4 | |
Tru64 UNIX | 9.1 TS1M3 SP4 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
Type: | Problem Note |
Priority: | high |
Date Modified: | 2008-04-16 09:40:19 |
Date Created: | 2008-02-29 11:53:22 |