AFAIK, bạn cần thực hiện lần lượt từng đối tượng cấp.
Thông thường, bạn sẽ sử dụng một tập lệnh để thực hiện việc này, một cái gì đó dọc theo dòng:
SELECT 'GRANT ALL ON '||table_name||' TO BOB;'
FROM ALL_TABLES
WHERE OWNER = 'ALICE';
Và tương tự cho các đối tượng db khác.
Bạn có thể đặt một gói trong mỗi lược đồ mà bạn cần cấp quyền mà từ đó sẽ thực hiện tất cả các lệnh gọi từng câu lệnh GRANT thông qua một THỰC HIỆN NGAY LẬP TỨC.
ví dụ:
PROCEDURE GRANT_TABLES
IS
BEGIN
FOR tab IN (SELECT table_name
FROM all_tables
WHERE owner = this_user) LOOP
EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON '||tab.table_name||' TO other_user';
END LOOP;
END;