135: END IF;
136:
137: IF ok THEN
138: -- Address bug 17997122 by carefully checking OLAP_XS_ADMIN role
139: -- privileges against the DBA_TAB_PRIVS view.
140: -- check for privileges granted as local granted privileges, COMMON='NO'
141:
142: -- Bug 21856522 As of 12.2 Privs on sys owned pl/sql packages can be common = no or
143: -- common = yes
141:
142: -- Bug 21856522 As of 12.2 Privs on sys owned pl/sql packages can be common = no or
143: -- common = yes
144: SELECT COUNT(*) INTO dummy_num
145: FROM DBA_TAB_PRIVS
146: WHERE GRANTEE='OLAP_XS_ADMIN' AND
147: PRIVILEGE='EXECUTE' AND
148: OWNER='SYS' AND
149: TABLE_NAME='DBMS_XDS';
155: END IF;
156:
157: IF ok THEN
158: SELECT COUNT(*) INTO dummy_num
159: FROM DBA_TAB_PRIVS
160: WHERE GRANTEE='OLAP_XS_ADMIN' AND
161: ((PRIVILEGE='SELECT' AND OWNER='SYS' AND
162: TABLE_NAME='XS$OLAP_POLICY' AND COMMON='NO') OR
163: (PRIVILEGE='SELECT' AND OWNER='SYS' AND
166: IF dummy_num = 0 THEN
167: -- No local granted privileges
168: -- check to see if grants are common granted privileges, COMMON = 'YES'
169: SELECT COUNT(*) INTO dummy_num
170: FROM DBA_TAB_PRIVS
171: WHERE GRANTEE='OLAP_XS_ADMIN' AND
172: ((PRIVILEGE='SELECT' AND OWNER='SYS' AND
173: TABLE_NAME='XS$OLAP_POLICY' AND COMMON='YES') OR
174: (PRIVILEGE='SELECT' AND OWNER='SYS' AND
181: ELSIF dummy_num = 2 THEN
182: -- Grants are valid for local granted privileges.
183: -- Now grants may also be a common granted privilege, COMMON = 'YES'
184: SELECT COUNT(*) INTO dummy_num
185: FROM DBA_TAB_PRIVS
186: WHERE GRANTEE='OLAP_XS_ADMIN' AND
187: ((PRIVILEGE='SELECT' AND OWNER='SYS' AND
188: TABLE_NAME='XS$OLAP_POLICY' AND COMMON='YES') OR
189: (PRIVILEGE='SELECT' AND OWNER='SYS' AND