Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle - Как да създадете потребител само за четене

Потребител в база данни на Oracle има само привилегиите, които предоставяте. Така че можете да създадете потребител само за четене, като просто не предоставяте никакви други привилегии.

Когато създадете потребител

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

потребителят дори няма разрешение да влезе в базата данни. Можете да разрешите това

GRANT CREATE SESSION to ro_user

и след това можете да дадете каквито привилегии за четене искате. Например, ако искате RO_USER за да можете да заявите SCHEMA_NAME.TABLE_NAME , бихте направили нещо като

GRANT SELECT ON schema_name.table_name TO ro_user

Като цяло обаче е по-добре да създадете роля и да предоставите привилегии на обекта на ролята, за да можете след това да предоставите ролята на различни потребители. Нещо като

Създайте ролята

CREATE ROLE ro_role;

Предоставете достъп на ролята SELECT на всяка таблица в определена схема

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;

След това дайте ролята на потребителя

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. грешка:ORA-65096:невалидно име на общ потребител или роля в oracle

  2. Как да получите UTC стойност за SYSDATE на Oracle

  3. 5 начина за актуализиране на данни с подзаявка в Oracle SQL

  4. Как да настроите OTA в R12 и 11i

  5. SQLPlus - спулиране към множество файлове от PL/SQL блокове