Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle — jak utworzyć użytkownika tylko do odczytu

Użytkownik w bazie danych Oracle ma tylko przyznane przez Ciebie uprawnienia. Możesz więc utworzyć użytkownika tylko do odczytu, po prostu nie nadając żadnych innych uprawnień.

Kiedy tworzysz użytkownika

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

użytkownik nie ma nawet uprawnień do logowania się do bazy danych. Możesz to przyznać

GRANT CREATE SESSION to ro_user

a następnie możesz przystąpić do przyznawania dowolnych uprawnień do odczytu. Na przykład, jeśli chcesz RO_USER aby móc wysłać zapytanie do SCHEMA_NAME.TABLE_NAME , zrobiłbyś coś takiego

GRANT SELECT ON schema_name.table_name TO ro_user

Ogólnie rzecz biorąc, lepiej jest utworzyć rolę i przyznać uprawnienia do obiektu, aby można było następnie przyznać rolę różnym użytkownikom. Coś jak

Utwórz rolę

CREATE ROLE ro_role;

Przyznaj roli SELECT dostęp do każdej tabeli w określonym schemacie

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 następnie przyznaj rolę użytkownikowi

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. Dodaj parametr daty do zapytania Oracle

  2. Wprowadzenie do natywnego dynamicznego SQL w bazie danych Oracle

  3. Skrypty uruchamiania i zatrzymywania EBS R12

  4. Zignoruj ​​parametr zakresu dat w klauzuli WHERE, gdy parametr nie jest wprowadzony

  5. Funkcja listgg ORACLE SQL