Sự khác nhau giữa hai loại là gì? Trong cả hai trường hợp? điều gì sẽ xảy ra với các đặc quyền được cấp trên chức năng này? Được tự động thu hồi trong cả hai trường hợp và phải được cung cấp lại trong khi tạo lại? Vui lòng giải thích.TẠO HOẶC THAY THẾ v/s Giảm chức năng và tạo lại nó
6
A
Trả lời
14
Khi một đối tượng bị xóa mọi thứ liên quan đến nó cũng bị loại bỏ, bao gồm cả các đặc quyền. Điều này không đúng với TẠO HOẶC THAY THẾ.
SQL> create procedure p1 is
2 begin
3 null;
4 end;
5/
Procedure created.
SQL> grant execute on p1 to xyz;
Grant succeeded.
SQL> select * from user_tab_privs_made
2/
GRANTEE TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
XYZ P1 APC EXECUTE NO NO
SQL> create or replace procedure p1 is
2 n pls_integer;
3 begin
4 n := 1;
5 end;
6/
Procedure created.
SQL> select * from user_tab_privs_made
2/
GRANTEE TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
XYZ P1 APC EXECUTE NO NO
SQL> drop procedure p1;
Procedure dropped.
SQL> create or replace procedure p1 (p in out pls_integer) is
2 begin
3 p := p+1;
4 end;
5/
Procedure created.
SQL> select * from user_tab_privs_made
2/
no rows selected
SQL>
4
Tôi tin rằng nếu bạn thay thế một hàm, đặc quyền vẫn nguyên vẹn, mặc dù tôi thường tạo các từ đồng nghĩa công khai và cấp đặc quyền cho những từ đó.
REPLACE là một từ khóa không bắt buộc sử dụng trong định nghĩa đối tượng (DDL) để override định nghĩa Objet cũ với một cái mới. Nó giữ lại các đặc quyền truy cập của đối tượng trong quá trình sửa đổi định nghĩa . Tuy nhiên, nếu đối tượng bị rớt và tái tạo, các đặc quyền sẽ bị mất.
Có thể sai nhưng lịch sử kiểm tra cũng được duy trì? – Rob