12-06-2012 01:16 PM
on Mgmt Console defined a share server library, tables registered, and in Data Integration Studio successfully reads these tables.
But in EG, workspace server reads metadata but cannot read actual data, msg:
The open data operation failed. The following error occurred.
[Error] The Read permission is required to read data in table/view TRISHARE.COCH1990.DATA.
Read the PDF below, still confused.
What SAS Administrators Should Know about Libraries,
Metadata, and SAS Enterprise Guide
For SAS 9.2 and SAS Enterprise Guide 4.2 and 4.3
I'm SAS 9.3 TS1M0 and EG 4.3 on Windows Vista 32-bit. Thanks,
12-06-2012 01:59 PM
The most likely cause of an error like this is that the Management Console library definition authorisations are not set up correctly for the userid you are using to connect from EG to your SAS server. Check the authorisations tab in the library properties to see if your userid is included in any of the user groups that have read metadata and read permissions on this library.
12-06-2012 03:13 PM
the same user "demo4sas" using Data Integration successfully reads the share server lib defined on MC but EG can't read it. Why different between DI and EG?
PS. DI & EG using port 8516 to connect to server "hsiwei".
Yes, on MC, I have a group (of users) "ReadData" containing only one user, "demo4sas", and "ReadData" is granted ReadMetadata and Read for the share server lib (assigned to SASApp, SASMeta) and the associated base lib (assigned to Share Server - Hostname)
I think MC is correct and something else I mess up. Thanks for your help,
12-06-2012 03:18 PM
It's possible that EG is using the META libname engine instead of the REMOTE engine to read this library. You referenced the "what admins should know" documentation -- in that doc, there is a discussion about how to change the library behavior using the "Pre-assigned" option, or by adding the AssignMode property in the library settings. You might need to experiment with one of those settings.
12-07-2012 09:39 AM
Thanks Chris, Works great!
So on MC, set "pre-assigned" to share server lib (assigned to SASApp, SASMeta) and that's it.
Seems like set "pre-assigned" should be preferred for all libraries on MC.
12-07-2012 09:46 AM
Glad it worked for you. I agree that the Pre-assigned setting can make a library definition much more usable.
"Pre-assigned" is not the right answer for every situation. The pre-assigned behavior tells SAS to assign the library, using its "native" engine (not the META engine), when the SAS Workspace starts up. That's okay for folder-based libraries and even SHARE libs, but it's not always what you want for database libraries, as it would establish a connection to the database. DBMS connections are sometimes regarded as a precious resource and admins would prefer that they be established "just in time" when you need to access the data, and then cleared when you're finished.
12-07-2012 11:30 AM
Thanks Chris for clarifying implication for RDBMS!
Probably Detour next to MC.
so on MC a RDBMS, say Oracle, library defined, NOT pre-assigned, the library itself has authorization for "ReadData" group granted ReadMetadata & Read permission. Then register tables success! Highlight a table to see properties, the authorization does not have "ReadData" group, like it's NOT inheriting from parent.
Bottomline is from DI OK to read that RDBMS but EG can't (failing for no read permission).
Workaround is on MC set the RDBMS library "pre-assigned" then both DI & EG successful.
Perhaps something different between DI & EG? seems EG as good as DI would be great.
Or How to tell MC, when register tables, do inherit other group permissions from library folder itself? Too much manual work to add group permission for each table.
PS. in EG I don't see how to influence meta library assignment at all.