User hrqa_ro will be globally read only user.
SQL> conn / as sysdba
SQL> create user hrqa_ro identified by hrqa_ro123;
User created.
SQL> grant create session,select any dictionary,select any table to hrqa_ro;
Grant succeeded.
*************************************************************************
Question: I need to create a read-only user within my schema.
How can you grant read-only access for a single user without granting read to every table?
Answer: You can make any user read-only with the grant select any table privilege:
SQL> connect scott/tiger
SQL>create user scott_read_only_user identified by readonly;
SQL>grant create session to scott_read_only_user;
SQL>grant select any table to scott_read_only_user;
This will only grant read-only to scott tables, you would need to connect to another schema owner
to grant them read-only access. Optionally, you can add read-only dictionary acces:
SQL>grant select any dictionary to scott_read_only_user;
**************************************************************************
[oracle@testsrv]$ sqlplus / as sysdba
SQL> create user juser_read_only identified by test;
SQL> grant create session to user_read_only;
SQL> grant select any table to user_read_only;
Once you have granted these privileges you can connect as the new user.
SQL> conn user_ready_only/test
SQL> select * from scott.emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300
30
If you wish to grant select on dictionary views then:
SQL> conn / as sysdba
SQL> grant select any dictionary to user_read_only;
If you wish the read_only user could select ddl of any objects belongs to any schema then:
SQL> grant SELECT_CATALOG_ROLE to user_read_only;
SQL> conn user_read_only
SQL> conn / as sysdba
SQL> create user hrqa_ro identified by hrqa_ro123;
User created.
SQL> grant create session,select any dictionary,select any table to hrqa_ro;
Grant succeeded.
*************************************************************************
Question: I need to create a read-only user within my schema.
How can you grant read-only access for a single user without granting read to every table?
Answer: You can make any user read-only with the grant select any table privilege:
SQL> connect scott/tiger
SQL>create user scott_read_only_user identified by readonly;
SQL>grant create session to scott_read_only_user;
SQL>grant select any table to scott_read_only_user;
This will only grant read-only to scott tables, you would need to connect to another schema owner
to grant them read-only access. Optionally, you can add read-only dictionary acces:
SQL>grant select any dictionary to scott_read_only_user;
**************************************************************************
[oracle@testsrv]$ sqlplus / as sysdba
SQL> create user juser_read_only identified by test;
SQL> grant create session to user_read_only;
SQL> grant select any table to user_read_only;
Once you have granted these privileges you can connect as the new user.
SQL> conn user_ready_only/test
SQL> select * from scott.emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300
30
If you wish to grant select on dictionary views then:
SQL> conn / as sysdba
SQL> grant select any dictionary to user_read_only;
If you wish the read_only user could select ddl of any objects belongs to any schema then:
SQL> grant SELECT_CATALOG_ROLE to user_read_only;
SQL> conn user_read_only
No comments:
Post a Comment