sql >> Database >  >> RDS >> Oracle

Oracle - Een alleen-lezen gebruiker maken

Een gebruiker in een Oracle-database heeft alleen de rechten die u toekent. U kunt dus een alleen-lezen gebruiker maken door simpelweg geen andere rechten toe te kennen.

Wanneer u een gebruiker aanmaakt

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

de gebruiker heeft niet eens toestemming om in te loggen op de database. U kunt dat toestaan ​​

GRANT CREATE SESSION to ro_user

en dan kunt u alle leesrechten verlenen die u maar wilt. Als u bijvoorbeeld RO_USER . wilt om SCHEMA_NAME.TABLE_NAME te kunnen opvragen , zou je zoiets doen als

GRANT SELECT ON schema_name.table_name TO ro_user

Over het algemeen kunt u echter beter een rol maken en de objectrechten aan de rol toekennen, zodat u de rol vervolgens aan verschillende gebruikers kunt toekennen. Iets als

Maak de rol

CREATE ROLE ro_role;

Verleen de rol SELECT toegang tot elke tafel in een bepaald schema

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;

En dan de rol toekennen aan de gebruiker

GRANT ro_role TO ro_user;


  1. SQL Hoe de SUM van kolom over groep in dezelfde tabel te updaten

  2. Stale-statistieken controleren?

  3. Afstemmen van SQL Server Reporting Services

  4. De 3 belangrijkste kenmerken van big data begrijpen