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

Oracle - Как да предоставим на потребител правата върху обектите на друг потребител

Можете да напишете проста процедура, за да направите това:

BEGIN
  FOR Rec IN (SELECT object_name, object_type FROM all_objects WHERE owner='SOURCEUSER' AND object_type IN ('TABLE','VIEW','PROCEDURE','FUNCTION','PACKAGE')) LOOP
    IF Rec.object_type IN ('TABLE','VIEW') THEN
      EXECUTE IMMEDIATE 'GRANT SELECT, UPDATE, INSERT, DELETE ON SOURCEUSER.'||Rec.object_name||' TO TARGETUSER';
    ELSIF Rec.object_type IN ('PROCEDURE','FUNCTION','PACKAGE') THEN
      EXECUTE IMMEDIATE 'GRANT EXECUTE ON SOURCEUSER.'||Rec.object_name||' TO TARGETUSER';
    END IF;
  END LOOP;
END;

Не съм сигурен точно какво друго питате. Можете да промените горното, за да добавите допълнителни разрешения и/или object_types за привилегиите, които искате да предоставите на targetuser. Както подсказва @stili, можете да направите много с ролите, но внимавайте - някои разрешения не работят, когато са предоставени чрез роли.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инсталирайте Oracle Client от командния ред без взаимодействие с потребителя

  2. Как да планирате работа в Oracle SQL Developer?

  3. Как мога да посоча началната страница на Oracle, която да използвам, когато използвам System.Data.OracleClient

  4. Конфигурирайте Hibernate да използва SYS_GUID() на Oracle за първичен ключ

  5. PLSQL JDBC:Как да получа ID на последния ред?