$ su oracle $ sqlplus / as sysdba EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); alter profile DEFAULT limit password_life_time UNLIMITED; CREATE USER odb_test IDENTIFIED BY odb_test DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; GRANT CREATE TABLE, CREATE SEQUENCE, CREATE TRIGGER, CREATE SESSION, CREATE TYPE, CREATE PROCEDURE, UNLIMITED TABLESPACE TO odb_test; ======= For some Oracle installations (e.g., non-XE), the directory with OCI headers/libraries is not accessible unless the user is in the oinstall group. To fix, add the user in question to this group and switch to it (the last part is not ideal since all new files will be created with this group): usermod -g oinstall boris newgrp oinstall ======= If you are getting "ORA-12516: TNS:listener could not find available handler with matching protocol stack" (this seems to be the case with 10.2 XE), you will need to increase the number of connections/processes: col name format A30 col value format A30 select name, value from v$parameter where name in ('processes','sessions'); alter system set processes=300 scope=spfile; alter system set sessions=300 scope=spfile; Then restart the database (via init.d). ======= If running an OCI-based client under valgrind you get "ORA-12546: TNS: permission denied", then you need to set the TWO_TASK environment variable: export TWO_TASK=<service name> For example: export TWO_TASK=xe