Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle - Cara membuat pengguna hanya baca

Seorang pengguna dalam database Oracle hanya memiliki hak istimewa yang Anda berikan. Jadi, Anda dapat membuat pengguna hanya-baca dengan tidak memberikan hak istimewa lainnya.

Saat Anda membuat pengguna

CREATE USER ro_user
 IDENTIFIED BY ro_user
 DEFAULT TABLESPACE users
 TEMPORARY TABLESPACE temp;

pengguna bahkan tidak memiliki izin untuk masuk ke database. Anda dapat memberikan itu

GRANT CREATE SESSION to ro_user

dan kemudian Anda dapat memberikan hak baca apa pun yang Anda inginkan. Misalnya, jika Anda ingin RO_USER untuk dapat menanyakan SCHEMA_NAME.TABLE_NAME , Anda akan melakukan sesuatu seperti

GRANT SELECT ON schema_name.table_name TO ro_user

Namun, umumnya, Anda lebih baik membuat peran, dan memberikan hak istimewa objek ke peran tersebut sehingga Anda kemudian dapat memberikan peran tersebut kepada pengguna yang berbeda. Sesuatu seperti

Buat peran

CREATE ROLE ro_role;

Berikan peran akses SELECT pada setiap tabel dalam skema tertentu

BEGIN
  FOR x IN (SELECT * FROM dba_tables WHERE owner='SCHEMA_NAME')
  LOOP
    EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || x.table_name || 
                                  ' TO ro_role';
  END LOOP;
END;

Dan kemudian berikan peran tersebut kepada pengguna

GRANT ro_role TO ro_user;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan hasil dari kueri SQL di Oracle

  2. INST_TOP (Oracle R12 INSTANCE_HOME ) diterjemahkan

  3. Perbedaan penanganan spasi antara Oracle dan SQL Server

  4. MySQL 'buat skema' dan 'buat database' - Apakah ada perbedaan?

  5. Partisi dinamis tabel Oracle