ODBC Permission Error from MS Access DB despite having the necessary DB grants - oracle

User, XX has the delete grants on a Oracle DB table.
XX can delete the record from the table directly upon connecting to DB via TOAD/SQL Dev/...
XX cannot delete the same record from the same table when accessing it as a linked table from MS Access DB.
Error:
ODBC - delete on a linked table failed.
ORA - 01031: insufficient privileges
Same is the case when trying to delete the record either from a custom form or from the linked table row.
User can however read, insert data through the linked table.
User can also delete the record from another linked table with the delete privileges.
Things tried so far:
Deleting the linked table and relinking it.
Re-configuring the ODBC.
Removed and provided the table specific grants again.
Verified that all the action triggers and Access macros are not causing any access issue.
Any thoughts/inputs will be of great help. Thanks.

Related

How to query tables and pull data into an Oracle APEX application from another schema?

I am working in an Oracle APEX application and am trying to query tables in another schema (that another Oracle APEX application sits on) to pull in data to my application.
The applications are hosted within the same APEX workspace and on the same Oracle 11g instance. Our application have tables that are structurally the same as the tables we're trying to query in the other schema.
Using the schema prefix (SELECT * FROM "SCHEMA2".TABLE1;) when querying is throwing an error that the tables do not exist (ORA-00942: table or view does not exist)
The second thing I tried is creating a database link between the two schemas, but when trying to establish the connection I'm getting the following error: ORA-01031: insufficient privileges
Can someone identify where I'm going wrong here / help me figure out how to query the other schema?
Database link is used when there are different databases involved; your schemas reside in the same database which means that the first attempt was correct: prefixing table name with its owner, e.g.
SELECT * FROM SCHEMA2.TABLE1
However, first connect as schema2 user and issue
grant select on table1 to schema1;
Otherwise, schema1 can't see the table. If schema1 is supposed to do something else with that table, you'll have to grant additional privileges, such as insert, update, delete, ....

How to log errors in Informatica?

Due to security issues the user or Informatica has grants to create neither tables nor synonyms.
So I have come up with this:
The PMERR_DATA, PMERR_MSG, etc. tables are created under another user
The user of Informatica is granted to select, inset, update and delete from these tables
Name of the owner of the tables was set in the error table log prefix field:
But when the task starts, the integration service tries to create these PMERR% tables and it fails (due to lack of permissions to create tables)
How can these restrictions be overcome?

H2 database write access reqd

I installed Talend Open Studio for MDM and Master data gets stored in H2 Database(which is the only DB provided by product). I created an entity in MDM. But I need to make changes in that entity datatype. I need to drop the entity which I already created. When I am trying to do this, I am getting below error.
sa#TMDM_DB/PUBLIC> drop table contact;
An error occurred when executing the SQL command: drop table contact
The database is read only; SQL statement: drop table contact [90097-176] [SQL State=90097, DB Errorcode=90097]
how to make this H2 DB as write mode. I need to have write access.

Create database in oracle for manually created user

I want to create the user and the database within that user. But when I tried to create database its giving the warning message as
ERROR at line 1:
ORA-01501: CREATE DATABASE failed
ORA-01100: database already mounted
Then I tried
STARTUP NOMOUNT;
Its giving the warning message for insufficient privileges even I have given all the permission to that particular user.
Can any one please help in finding the solution for this?
You don't create a database under a user in Oracle; I believe you're using terminology from another database poduct. The equivalent is a schema, which is a logical container for a group of objects. User and schema are essenentially synonymous in Oracle - when you create a user is automatically has its own schema.
You create the database once (which you already seem to have done, or had done for you), then create as many schemas/users as your application needs. You don't ever rerun the create database under normal circumstances - you certainly wouldn't as a normal user.
If you connect as that user you will be able to create tables, views, packages etc., assuming it has really been granted all the necessary privileges.

Oracle Global Temporary table - Privileges for other instances

I have created Global Temporary table in oracle and inserting the data through my application, and its working fine for me when i connect to database with "system" as the username. Where as i have created one more user in the database with "user1" and have given "Grant all" privileges to this user also. Now when am connecting to database with "User1" as the username and running the application, the data is not inserting into Global temporary table.
But when i try to insert data from sql developer tool its inserting.
With system user through application also working, whereas with user1 its not inserting. Am not getting whats behind going as am not that much DB expert.
Please have any idea suggest me. I have all privileges also. Thanks in advance.
Fist, the table MUST be in other schema than SYS or SYSTEM. Create it on "User1".
Second, you must be sure that you select from the same table. Prefix the table with the schema when inserting and also when reading.
Also be sure that you are not in the situation of table created with ON COMMIT DELETE ROWS and some AUTOCOMMIT ON in Sql Developer.

Resources