Controlling access to Oracle Mapviewer spatial data through VPD
I am building a web GIS application in Oracle Application Express (APEX) and have used the Virtual Private Database feature of Oracle Database 11g Enterprise Edition so as to ensure row level security. I've integrated APEX with Oracle Mapviewer through Oracle Maps API in order to display a map.
VPD feature is working properly through the command prompt at the database level but I also need to use the VPD policy at the application level so that each authenticated user can only see his own spatial data on the map.
So far I have accomplished that by creating as many data sources as the number of application users on the mapViewerConfig.xml file. Every time a user logs in the web GIS application, the correct data source is being employed.
I was wondering if there is any other parameterised way that I can perform this access control functionality without having to create all these data sources.
Many thanks in advance.
Yes you can define a single "secure" MapViewer data source to achieve VPD or make use of your database VPD setup. For more details and how to get the Apex app user to MapViewer and then onto VPD you can check out my blog post here: http://oraclemaps.blogspot.com/2008/09/apex-oracle-maps-and-secure-mapping.html
hope this helps,
LJ
Similar Messages
-
Mapviewer spatial data for Italy
Hi experts,
Could you please tell us where we download BIEE 11g mapviewer spatial data for Italy?
Thanks.From one of the data providers, e.g.
TomTom: http://www.tomtom.com/en_gb/licensing/products/maps/geospatial-oracle/
Nokia (Here): developer.here.com
GfK Geo-Marketing: http://www.gfk-geomarketing.de/en/digital_maps/softwarespecific_maps/maps_for_oracle_spatial.html -
Hi experts,
Could you please tell us where we download BIEE 11g mapviewer spatial data for China?
Thanks.the Spatial Data needs to be downloaded from NAVTEQ
Find the complete steps and download link here
http://obieelive.blogspot.com/2012/06/map-viewer-configuration-in-obiee.html?utm_source=BP_recent
Thanks,
Sandeep -
Acquiring Oracle Spatial Data through WFS
Hi,
I have been researching for awhile and am slightly confused.
I have Oracle Spatial 11g with geometry data and would like to be able to retrieve that data through a WFS to serve to a viewing application.
Here's where I am confused:
1) Spatial has a WFS service which needs to be configured. If I were configure that, would I be able to access the data through URL getFeature commands? The documentation I see for them has the getFeature requests in the form of XML files so I am not sure if I can do that. Also it seems like the service is returning .log files but I think I would want GML...
If this is the option I should take, the tutorial to setup OC4J and the Web Services are for a Linux machine (http://www.oracle.com/technology/obe/11gr1_db/datamgmt/spatialws/spatialws.htm) -- Is there one for Windows 64bit?
2) Do I need another "application layer" to enable this URL support? I know MapServer can use URL requests.. can I just run this against the data in my DB and forget about the Oracle WFS?
3) MapViewer seems to work with WFS Themes and handle requests through Java and SQL.. is this another option?
I am basically confused as to where everything sits and what I should be focusing on to get my Spatial data out of the DB through a WFS. Any assistance on this matter would be greatly appreciated!
Thanks!Any help debugging this issue would be greatly appreciated:
As per the documentation:
http://localhost:8888/SpatialWS-SpatialWS-context-root/wfsservlet?request=GetCapabilities&service=wfs&version=1.0.0
:this get request should return the capabilities info however I receive this error message instead in the browser:
<?xml version="1.0" encoding="UTF-8" ?>
- <ogc:ServiceExceptionReport version="1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://localhost:8888/examples/servlets/xsds/OGC-exception.xsd" xmlns:ogc="http://www.opengis.net/ogc">
<ogc:ServiceException code="WFS-1042">Exception during processing request</ogc:ServiceException>
</ogc:ServiceExceptionReport>
The sytem out from the oc4j container provides this error message:
10/04/27 15:47:38 [oracle.spatial.ws.WSProperties, Tue Apr 27 15:47:38 MDT 2010,
INFO] No subject specified in request.
10/04/27 15:47:38 [oracle.spatial.ws.WSProperties, Tue Apr 27 15:47:38 MDT 2010,
ERROR] Oracle Spatial WS Server could not set up configuration parameters: jav
a.lang.RuntimeException: No subject specified in request.
10/04/27 15:47:38 [oracle.spatial.ws.servlet.WFSServlet, Tue Apr 27 15:47:38 MDT
2010, FATAL] java.lang.RuntimeException: java.lang.RuntimeException: No subject
specified in request.
at oracle.spatial.ws.WSProperties.getProperties(WSProperties.java:705)
at oracle.spatial.ws.servlet.WFSServlet.doGet(WFSServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
stDispatcher.java:734)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
vletRequestDispatcher.java:391)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequ
estHandler.java:908)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
tHandler.java:458)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpReque
stHandler.java:226)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:127)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.ja
va:116)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSo
cketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(Server
SocketAcceptHandler.java:234)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocket
AcceptHandler.java:29)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(
ServerSocketAcceptHandler.java:879)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(Relea
sableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.RuntimeException: No subject specified in request.
at oracle.spatial.ws.WSProperties.getUser(WSProperties.java:574)
at oracle.spatial.ws.WSProperties.getProperties(WSProperties.java:695)
... 16 more -
Mapviewer - Spatial Data Cache
I am trying to clear the spatial data cache in two different versions (mv10 & mv11ea) of Mapviewer without success. To confirm that the cache is being cleared I have enabled the report_stats as below in the mapViewerConfig.xml for both versions
<spatial_data_cache max_cache_size="64"
report_stats="true"
/>After a few requests I note the following in the log:
Cache group PARCEL_VIEW_SHAPE_82473_PDT_GEOM statistics:
capacity: 262144
size: 145988
load factor: 0.95
# of chains: 88837
max chain depth: 8
avg chain depth: 1.6433242905546113
empty bucket %: 0.6611137390136719
total mem size : 28169KBKnowing (assuming) that this cache group is populated by a single theme that references the PARCEL_VIEW table I then issue the following via the Admin section of the Mapviewer control.
<?xml version="1.0" standalone="yes"?>
<non_map_request>
<clear_theme_cache data_source="vicmap" theme="THEME_PARCEL" />
</non_map_request>Then, after waiting patiently for the next set of statistics to appear in the log (BTW, is there a way to change the frequency from 10 minutes to something more regular?) I notice that the information for the cache group has not changed.
Am I following the correct steps here? If I wish to clear the spatial cache, should I be monitoring these statistics?
All advice most welcome.
Ross.Hi Ross,
we'll review the statistics reported and check why it is not changing. The frequency is currently hard-coded (5 minutes), and there is no parameter on the configuration file to change that. We may consider this in the future.
Joao -
Mapviewer - Spatial Data licensing
Hi,
I am working for a fortune 500 company and We are looking forward to use Oracle Mapviewer. My VPs straight question is how much the licensing cost per CPU? And I also know that in order to use MapViewer we need Oracle Spatial data how much will it cost per CPU?? Can any one help me with this question. We are using OBIEE 10g and SQL Server database.
Thanks in advance,
DKthe Spatial Data needs to be downloaded from NAVTEQ
Find the complete steps and download link here
http://obieelive.blogspot.com/2012/06/map-viewer-configuration-in-obiee.html?utm_source=BP_recent
Thanks,
Sandeep -
Spatial data through JDBC driver
Hi,
I have a spatial table which has polygon, linestring and points stored in the geometry column. Is there any API available to know whether the stored data is ploygon/point/linestring. I am using thin JDBC driver to connect to Oracle. Also are there APIs available to get the coordiniates, offset etc from polygon. Please let me know if there are any tutorials/examples available for working with spatial data and JDBC driver.
SmithaHi,
You could use Oracle Spatial Java Class Library, available at: http://www.oracle.com/technology/software/products/spatial/index.html
It is quite easy to use it.
Regards,
Andrejus -
MapViewer spatial data for UAE
Hi Experts,
I have been integrating maps for OBIEE implementations. Now I have landed on a requirement to create a map for UAE countries.
Is there any spatial data available in oracle for UAE.??
Thanks in Advance,From one of the data providers, e.g.
TomTom: http://www.tomtom.com/en_gb/licensing/products/maps/geospatial-oracle/
Nokia (Here): developer.here.com
GfK Geo-Marketing: http://www.gfk-geomarketing.de/en/digital_maps/softwarespecific_maps/maps_for_oracle_spatial.html -
MS Access to ORacle 8i - loading data Error
I'm able to create all the access db objects in an Oracle 8i database.
When I try to load the data I get this in the error.log file:
EXCEPTION : LoadTableData.run() : [Microsoft][ODBC Driver Manager] Driver does not support this function
I have MSAccess97 SR-2 installed. My ODBC Microsoft access driver is 4.00.420200
Any ideas of what I'm doing wrong.
Thanks!
Patricia Pierson
IBM Global Services DBA
303.571.6380
[email protected]
nullHi ,
Please e-mail [email protected] with your issue.
Regards
John -
Upload data from microsoft access to oracle form(in data block)
Hi all,
Any one can help me, how we can upload data from access file to developer form(in data block).
as
we upload data from text file to developer form(in data block) using some packages.
Thank's in advanceHi Zuhair,
If you give details of the problems you are still having then we should be able to get SQL*Developer to work.
However, if you don't want to use SQL*Developer then the following options are taken from note 393760.1 available in Metalink if you have access to that -
1. Use a gateway that supports the non-Oracle database or generic connectivity if a third party ODBC driver is available to do a -
'create Oracle_table as select from non_oracle_table@database_link'
for each table. You would then have to manually create all the other objects (views, indexes, stored procedurs etc) and permissions etc that existed in the non-Oracle database.
2. Use the SQL*Plus COPY command to copy data from the non-Oracle database to the
Oracle database using a gateway or generic connectivity. The syntax is as follows:
COPY FROM username/password@oracle_sid -
INSERT destination_oracle_table -
USING query;
The following example selects all rows from the EMP table in the non-Oracle database and
inserts them into the local Oracle EMP table:
COPY FROM SCOTT/TIGER@ora10 -
INSERT EMP -
USING SELECT * FROM SCOTT.EMP@gateway;
where "gateway" is the database link created for the gateway.
3. Load the non-Oracle data into flat files and use SQL*Loader to put the data into Oracle tables. Again manual
work is required for the other objects.
4. Contact the Oracle Product Technology Services (PTS) group for assistance. See the webpage -
http://www.oracle.com/technology/tech/migration//workbench/index_sqldev_omwb.html
5. Use a third party migration tool. See -
http://www.oracle.com/technology/tech/migration/isv/third_party.html
6. Use JDBC to connect to the non-Oracle database and Java in the Oracle database. This method will work but it is not suppported by the JDBC team.
=========
The amount of work involved will depend on the number and size of Access tables that you want to migrate.
Regards,
Mike -
Update oracle table using data through ODBC
Hi,
I want to update tables inside an Oracle 8i database.
The updates depend on data in a mySql database that I want to approach using an ODBC connection.
I cannot figure out what I need to do to select data from an ODBC source from an oracle session.
What do I have to call this external table ...
EdwardThe following link may be relevant. Check it out.
http://download-east.oracle.com/docs/cd/A87860_01/doc/server.817/a76960/hs_admin.htm -
How to access an action's Due Date through the GP API
I'm new to the GP API, and I would like to know how can I get/set an action's due date and notifications at runtime.
Is it possible to create new actions and attach them to a process?
Thanks in advanceThanks for your reply. You know? I already looked at those documents before, but I couldn't find the right API to acomplish my requirement.
What I've found over and over is how to retrieve the notifications belonging to the process. But these are not the notifications that I need. Like the post's title reads, I need the <i>Activities/Actions</i> notifications.
I read there's a method in the <i>NotificationManager</i> API to do so, but so far I've only manage to get a <i>NullPointerException</i>
Here's the code:
String processId = executionContext.getProcessId();
String activityId = executionContext.getTaskId();
IGPNotificationInstance notificationInstance =
ntfm.retrieveNotification(
processId, activityId, notifId);
String idNotificacion = "";
if (notificationInstance != null) {
deadline = notificationInstance.getDeadline();
The notification ID comes from watching the faulty notifications in the queue manager (so it's hard-coded)
It doesn't matter what property/method I try to access from the <i>notificationInstance </i>object. I get a <i>NullPointerException</i>. -
Access to non spatial tables in oracle mapviewer/ oracle maps V2
Hello,
We want to have access to non spatial oracle tables (for value list creation etc), existing in oracle mapviewer spatial datasource (ex datasource: MVDEMO/ nospatial table: Employees).
We have allready created the datasource MVDEMO and we want to avoid the creation of an external datasource to the same oracle user.
Thxs,
BillThanks. Your answer was very helpful. It pointed me in the right direction. I wanted to be able to generate a table, below the map, which listed all the points (and their associated data) shown on the map. The simplified code I used is shown below. The function is called using an event listener (map.addListener(OM.event.MapEvent.LAYER_ADDED, createTable) which fires after the pointlayer is added to the map.
function createTable(evt) {
var tableRecords = pointLayer.getAllFeatures();
var tableRecordsAttr = pointLayer.getAttributeNames();
divElem = document.createElement('div');
tableElem = document.createElement('table');
tbodyElem = document.createElement('tbody');
rowElem = document.createElement('tr');
// create the table headings
for (var i = 0; i < tableRecordsAttr.length; i++) {
colElem = document.createElement('th');
colElem.appendChild(document.createTextNode(tableRecordsAttr[i]));
rowElem.appendChild(colElem);
tbodyElem.appendChild(rowElem);
// populate each row of the table with data
for (var i = 0; i < tableRecords.length; i++) {
rowElem = document.createElement('tr');
for (var j = 0; j < tableRecordsAttr.length; j++) {
colElem = document.createElement('td');
colElem.appendChild(document.createTextNode(tableRecords[i].getAttributes()[tableRecordsAttr[j]]));
rowElem.appendChild(colElem);
tbodyElem.appendChild(rowElem);
tableElem.appendChild(tbodyElem);
divElem.appendChild(tableElem);
document.getElementsByTagName('body')[0].appendChild(divElem); -
Can i access the Oracle Demand Planning Cubes using the AWM?
Hi All,
Is it possible to access the Oracle Demand planning data which is stored as Express server using the Analytic workspace manager?
Any information regarding this is really appreciated.Abdul Hafeez,
Is ODP using Express Server or Oracle OLAP Analytical workspaces?
If Express Server is being used by ODP, then you cannot create sql views for OBIEE.
If Oracle database is being used for ODP data, then it is storing the data in Analytical workspaces. In that case, you can manually create OLAP views using OLAP_TABLE function. To do that, you will first have to know all the required structures inside the Analytical workspaces. Without that knowledge, you will not know what olap structures to "expose" in the OLAP views.
You can read about OLAP_TABLE function from Oracle 10g documentation http://download.oracle.com/docs/cd/B19306_01/olap.102/b14350/olap_table.htm
If you are using 9i database for ODP, then read about OLAP_TABLE function from 9i documentation http://download.oracle.com/docs/cd/B10501_01/olap.920/a95295/olap_tab.htm
- Nasar -
Cannot edit Oracle Spatial data
Hello,
I am running into some problems with my Oracle Spatial data. Maybe somebody has some insight. Here's what is going on:
1) I am able to connect to and view the data in uDig but I cannot edit the data and also the data shows up in the table of contents with a line symbol even though it is polygon data (it renders correctly in the map as polygons). I try using the 'Create Polygon Geometries' tool and it errors saying 'Create Polygon Tool' cannot operate on current layer.
2) When I try testing edits through WFS-T it errors and tells me that the table is read only.
The table is in the USERS tablespace and I have verified that it is read/write. I also set object permissions on the user: ALTER, DELETE, INSERT, SELECT, UPDATE
Am I missing something obvious? Anyone else have this problem? Thanks a lot for any ideas anyone has.My apologies for the confusion. My insert statement DID work just fine. I just wasn't seeing it...probably because I was querying the table in Enterprise Manager DB Control and it looks like it takes some time to refresh. So it appears that user permissions are not the issue.
I have used two data loading methods:
Before loading data, I needed to create a user defined coordinate reference system:
1 create projection operation for my custom projection
2 configure projection parameters
3 create the projected CRS in mdsys.sdo_coord_ref_system
First data load steps
1 shp2sdo.exe my_shapefile my_table -g geom -s 1000002 -v
2 execute my_table.sql
3 execute sqlldr.exe
4 EXECUTE SDO_MIGRATE.TO_CURRENT('my_table','GEOM');
5 CREATE INDEX my_table_index ON my_table(geom) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
Second data load steps:
1 open up MapBuilder, make a connection, and go through the Import Shapefile wizard. MapBuilder automatically creates a spatial index.
Does it appear that I am missing any steps or doing anything obviously wrong that would be causing me to not be able to edit the data through clients such as uDig or WFS-T?
Maybe you are looking for
-
Suppose that several VIs running simultaneously on the same computer. How can I find out the names of the running VIs, from another VI? If the already running VIs are clones of the same basic VI, open and run with the option "Prepare to call and forg
-
Hi All, I am using jdev 11.1.2.0 I am having a VO and VC. when i am executing View criteria .There is no error in it. That query is executing within seconds in TOAD.But in application it is taking lot of time. And after some time web logic got crashe
-
BW 7.0 to 7.3 upgrade-Post upgrade activity and Transport the changes
Hi Experts, We have upgraded our BW system from Release 7.0 to 7.3. As part of Security post upgrade activity I ran Migration steps, RSECADMIN-Extras->Migrations->Migration:Release 7.0 to Release 7.3. and later SU25 steps too. I fixed the Roles appea
-
I usually save to CC storage but I just lost the option to do that, it is no longer in my save to pull down or in my open pull down. where are my files?
-
I hit download and nothing has happened. I did save it. It's driving my crazy.
There are no details. It simply does nothing. I tried it a week ago and the same thing happened.