sql >> Databáze >  >> RDS >> Oracle

Oracle - Jak vytvořit uživatele pouze pro čtení

Uživatel v databázi Oracle má pouze oprávnění, která mu udělíte. Můžete tedy vytvořit uživatele pouze pro čtení tím, že mu jednoduše neudělíte žádná další oprávnění.

Když vytvoříte uživatele

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

uživatel ani nemá oprávnění k přihlášení do databáze. Můžete to udělit

GRANT CREATE SESSION to ro_user

a pak můžete přistoupit k udělení jakýchkoli práv čtení, která chcete. Pokud například chcete RO_USER abyste mohli dotazovat SCHEMA_NAME.TABLE_NAME , udělali byste něco jako

GRANT SELECT ON schema_name.table_name TO ro_user

Obecně je však lepší vytvořit roli a udělit jí oprávnění k objektu, abyste pak mohli udělit roli různým uživatelům. Něco jako

Vytvořte roli

CREATE ROLE ro_role;

Udělte roli SELECT přístup ke každé tabulce v konkrétním schématu

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;

A poté udělte roli uživateli

GRANT ro_role TO ro_user;


  1. Jak funguje funkce MATCH() v MySQL

  2. Podmínka WHERE v MySQL s 16 různými příklady dotazů

  3. Jaký je účel funkce String[] whereArgs in int (tabulka String, String whereClause, String[] whereArgs)?

  4. Sledujte signály pomocí datového modelu zpracování signálu