Hello HANA folks!
I am vexed by an issue as a new HANA admin...
We have a calculation view (CA_VIEW) which one of users (GIS) needs information from. They don't want all the info from the view, so we allowed them to create DB views on top of the CA_VIEW. For purposes of discussion the view is:
CREATE VIEW "GIS".GIS_A"
("AREA",
"REGION")
FROM "_SYS_BIC"."PKG/CA_VIEW"
These views are created by System and placed into the "GIS schema.
With these permissions, "GIS" can see the view just fine:
GRANTED_ROLES
CONTENT_ADMIN (from SYSTEM)
Public (Automatic - from SYS)
SYSTEM PRIVILEGES
CATALOG READ (from SYSTEM)
OBJECT PRIVILIGES
_SYS_BIC schema (from _SYS_REPO)
EXECUTE
SELECT
PKG/CA_VIEW (from _SYS_REPO)
SELECT
GIS (Schema) (From SYS)
Create Any
GIS_A (View) (from SYSTEM)
SELECT
The problem is we want to feed this view via data services to the "GIS" System. We use a common process ID for DS jobs on HANA - P_BODS and I have given P_BODS the following privs:
GRANTED_ROLES
Monitoring (from SYSTEM)
Public (Automatic - from SYS)
SYSTEM PRIVILEGES
CATALOG READ (from SYSTEM)
OBJECT PRIVILEGES
_SYS_BIC schema (from _SYS_REPO)
EXECUTE
SELECT
PKG/CA_VIEW (from _SYS_REPO)
SELECT
GIS (Schema) (from GIS)
EXECUTE
SELECT
GIS_VIEW (from SYSTEM)
SELECT
However, P_BODS can not see the data when I execute 'SELECT * FROM "GIS"."GIS_A" I get the following:
Could not execute 'SELECT * FROM "GIS"."GIS_A" in 73 ms 660us. SAP DBTech JDBC [2048]: column store error: [2950] user is not authorized.
I did a SQL Trace on this user and here is the output:
#begin PreparedStatement_close (tread 33934, con-id 443268) at 2016-02-08 13:08:54.882982
#con info [con-id 443268, tx_id 44, cl-ip 10.189.22.52, user: P_BODS, schema: P_BODS] cursor_139698265450432_c43268.close()
#end PreparedStatement (thread 33934, con-id 443268) at 2016-02-08
#begin prepareStatement (thread 33934, con-id 443268) at 2016-02-08 13:09:00.071915
#con info [con-id] 443268, tx-id 44, cl-pid 8600, cl-up 10.189.22.52, user: P_BODS, schema: P_BODS] cursor_13910176709504_c43268 = con_c43268.curor()
#StatementException call (thread 33934, con-id 443268) at 2016-02-08 13:09:00.093033
#con info [con-id 443268, tx-id 44, cl-pid 8600, cl-ip 10.189.22.52, user: P_BODS, schema: P_BODS]
#ERROR QUERY: cursor_139710176709504_c43268.execute(''' SELECT * FROM "GIS"."GIS_A" '''')
#begin rollback (thread 33934, con-id 443268 at 2016-02-08 13:09:00.093167
#con info [con-id 443268, tx-id 44, cl-pid 8600, cl-ip 10.189.22.52, user: P_BODS, schema: P_BODS] con_c43268.rollback()
#end rollback (thread 33934, con-id 443268) at 2016-02-08 13:09:00.093237
#Error call (thread 33934, con-id 443268) at 2016-02-08 13:09:00.093282
#con info [con-id 443268, tx-id 44, cl-pid 8600, cl-ip 10.189.22.52, user: P_BODS, schema: P_BODS]
#FAILURE OCCURED AT: calcul;ationEngine/ceController.cpp.418
#con info [con-id 443268, tx-id 44, cl-pid 8600, cl-ip 10.189.22.52, user: P_BODS, schema: P_BODS]
# MESSAGE: column store error: [2950] user is not authorized:
I CAN however, see the structure of the view under the P_BODS account as well as the SQL that forms the view creation.
(Apologies in advance for a wall of text or posting to the inappropriate area, I'm a newbie...)
I have searched the Web and SCN relating to creating DB views on top of a CALC view and am not finding a lot of information.
Thanks in advance for any assistance
Scott Unrein