Access Control Using Procedure on Oracle Database

  • User được tương tác với dữ liệu thông qua thực thi Procedure.
  • Có 2 dạng Procedure cần quan tâm:
    • Definer-rights Procedure (thực thi dưới quyền của User làm chủ Procedure): user chỉ cần được cấp quyền EXECUTE là có thể thực hiện được procedure mà không cần phải có quyền trên các đối tượng mà procedure tham chiếu tới.
    • Invoker-rights Procedure (thực hiện dưới quyền của user gọi thực thi nó): user thực thi cần phải được cấp quyền trên các đối tượng mà Procedure tham chiếu tới.

– Ví dụ:

Có 2 bảng SYS.USERS và DUC.USERS có các record như sau:

SYS.USERS

1

DUC.USERS

2

Trong đó user DUC không có quyền select trên table SYS.USERS. Bây giờ ta tạo 2 procedure bằng quyền SYS để xem sự khác biệt.

Definer-rights Procedure

3

Invoker-rights Procedure

4

Sau khi cấp quyền thực thi 2 procedure cho user DUC, ta kết nối database bằng user DUC và gọi thực thi 2 procedure này, chú ý xem kết quả trả về:

5

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s