Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle - Cách cấp cho người dùng quyền đối với các đối tượng của người dùng khác

Bạn có thể viết một thủ tục đơn giản để thực hiện việc này:

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;

Không chắc chắn chính xác những gì khác bạn đang yêu cầu. Bạn có thể sửa đổi ở trên để thêm các khoản trợ cấp bổ sung và / hoặc object_types cho các đặc quyền bạn muốn cung cấp cho người dùng mục tiêu. Như @stili ngụ ý, bạn có thể làm được nhiều việc với các vai trò, nhưng hãy cẩn thận - một số quyền không hoạt động khi được cấp qua các vai trò.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cú pháp câu lệnh Oracle select đơn giản

  2. Đặt giá trị mặc định của các trường trong bảng ORACLE thành một dạng

  3. Oracle- Kết nối bên ngoài bên trái trên nhiều bảng không trả về giá trị null mong muốn

  4. Oracle PLSQL cắt ngắn ngày giờ thành 15 phút khối

  5. Cú pháp SQL Oracle:Mã định danh được trích dẫn