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

Oracle:Quyền truy cập chỉ đọc vào lược đồ cho người dùng khác?

Nếu bạn có quyền kiểm soát cách ứng dụng của mình kết nối (ví dụ:câu lệnh khởi tạo cho nhóm kết nối của bạn), tất cả những gì bạn cần làm là chạy:

ALTER SESSION SET CURRENT_SCHEMA = PRODUCTS;

Từ thời điểm đó trở đi (trong suốt thời gian của phiên) bất kỳ tên đối tượng không đủ tiêu chuẩn nào sẽ được tìm kiếm trong PRODUCTS lược đồ.

Tất cả các khoản tài trợ được trao cho PRODUCTS_READONLY sẽ có hiệu lực. Phiên sẽ chạy dưới thông tin đăng nhập (và các hạn chế bảo mật) của người dùng ban đầu được sử dụng để đăng nhập.

Nếu bạn không thể thay đổi cách kết nối được thiết lập hoặc khởi tạo, trình kích hoạt đăng nhập cũng sẽ thực hiện điều này:

create or replace trigger logon_trg
  after logon on database
begin
    if (user = 'PRODUCTS_READONLY') then
      execute immediate 'alter session set current_schema = products';
    end if;
exception
  when others then null; -- prevent a login failure due to an exception
end logon_trg;
/

Lưu ý rằng điều quan trọng là phải bẫy bất kỳ ngoại lệ, bởi vì nếu không, một lỗi tiềm ẩn trong SQL được thực thi sẽ đăng xuất mọi người ra khỏi cơ sở dữ liệu một cách hiệu quả. Vì vậy, hãy sử dụng cẩn thận và kiểm tra kỹ trước khi đưa vào sản xuất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn Java Chuyển đổi thành Chuỗi Oracle Raw (16)

  2. Lỗi SQL:ORA-00913:quá nhiều giá trị

  3. Cân nhắc về hiệu suất cho dữ liệu tạm thời trong Oracle

  4. hàng đầu tiên VS hàng tiếp theo VS rownum

  5. Spring JPA Hibernate:truy vấn SELECT chậm