Chúng khá khác nhau, vâng.
Trong Oracle, các đặc quyền trên bảng có thể được cấp trực tiếp cho người dùng (trong trường hợp đó, chúng sẽ xuất hiện trong ALL_TAB_PRIVS
) hoặc các đặc quyền có thể được cấp cho một vai trò (hiển thị trong ROLE_TAB_PRIVS
) và vai trò đó có thể được cấp cho người dùng (hiển thị trong USER_ROLE_PRIVS
). Truy vấn đầu tiên sẽ hiển thị cho bạn những người dùng có tài trợ trực tiếp trên một bảng. Truy vấn thứ hai sẽ hiển thị cho bạn những người dùng đã được cấp vai trò đã được cấp quyền truy cập vào bảng (lưu ý rằng trong cả hai trường hợp, bạn thực sự phải chỉ định OWNER
ngoài tên bảng). Sẽ không hiển thị cho bạn thông tin về các khoản tài trợ đã được thực hiện thông qua nhiều cấp độ vai trò lồng nhau (nghĩa là Người dùng A đã được cấp Vai trò 1, Vai trò 1 đã được cấp Vai trò 2, Vai trò 2 đã được cấp quyền truy cập vào bảng). Các khoản tài trợ được thực hiện thông qua các vai trò cũng có thể hơi phức tạp vì có các vai trò mặc định và không mặc định cũng như các vai trò và vai trò được bảo vệ bằng mật khẩu có thể được bật và tắt trong một phiên.
Nói chung, tôi khuyên bạn nên xem qua các tập lệnh có sẵn trên trang web của Pete Finnigan nếu bạn muốn có một cái gì đó bao gồm tất cả các trường hợp có thể. Trong trường hợp này, bạn có thể muốn sử dụng tập lệnh who_can_access của anh ấy để xác định những gì người dùng có thể truy cập vào một bảng cụ thể.