sql >> Database teknologi >  >> RDS >> Oracle

Oracle - Sådan opretter du en skrivebeskyttet bruger

En bruger i en Oracle-database har kun de privilegier, du giver. Så du kan oprette en skrivebeskyttet bruger ved simpelthen ikke at give andre privilegier.

Når du opretter en bruger

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

brugeren har ikke engang tilladelse til at logge på databasen. Det kan du give

GRANT CREATE SESSION to ro_user

og så kan du gå om at give de læseprivilegier, du vil. For eksempel, hvis du vil have RO_USER for at kunne forespørge SCHEMA_NAME.TABLE_NAME , ville du gøre noget lignende

GRANT SELECT ON schema_name.table_name TO ro_user

Generelt er det dog bedre at oprette en rolle og tildele objektprivilegier til rollen, så du derefter kan tildele rollen til forskellige brugere. Noget lignende

Opret rollen

CREATE ROLE ro_role;

Giv rollen SELECT-adgang til hver tabel i et bestemt skema

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;

Og tildel derefter rollen til brugeren

GRANT ro_role TO ro_user;


  1. Optimeringstærskler – gruppering og aggregering af data, del 3

  2. Sådan beregnes forskellen mellem to tidsstempler i Oracle

  3. MariaDB JSON_DEPTH() Forklaret

  4. Hvordan opsætter man pandas DataFrame til Microsoft SQL Server-tabel?