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

Oracle - Cách tạo người dùng chỉ đọc

Người dùng trong cơ sở dữ liệu Oracle chỉ có các đặc quyền mà bạn cấp. Vì vậy, bạn có thể tạo người dùng chỉ đọc bằng cách không cấp bất kỳ đặc quyền nào khác.

Khi bạn tạo người dùng

CREATE USER ro_user
 IDENTIFIED BY ro_user
 DEFAULT TABLESPACE users
 TEMPORARY TABLESPACE temp;

người dùng thậm chí không có quyền đăng nhập vào cơ sở dữ liệu. Bạn có thể cấp điều đó

GRANT CREATE SESSION to ro_user

và sau đó bạn có thể tiếp tục cấp bất kỳ đặc quyền đọc nào bạn muốn. Ví dụ:nếu bạn muốn RO_USER để có thể truy vấn SCHEMA_NAME.TABLE_NAME , bạn sẽ làm điều gì đó giống như

GRANT SELECT ON schema_name.table_name TO ro_user

Nói chung, bạn nên tạo một vai trò, tuy nhiên, và cấp đặc quyền đối tượng cho vai trò đó để sau đó bạn có thể cấp vai trò đó cho những người dùng khác nhau. Một cái gì đó giống như

Tạo vai trò

CREATE ROLE ro_role;

Cấp quyền truy cập SELECT vai trò trên mọi bảng trong một lược đồ cụ thể

BEGIN
  FOR x IN (SELECT * FROM dba_tables WHERE owner='SCHEMA_NAME')
  LOOP
    EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || x.table_name || 
                                  ' TO ro_role';
  END LOOP;
END;

Và sau đó cấp vai trò cho người dùng

GRANT ro_role TO ro_user;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng trình tự Oracle hiện có để tạo id trong chế độ ngủ đông?

  2. Làm cách nào để chuyển hướng đầu ra của DBMS_OUTPUT.PUT_LINE thành một tệp?

  3. Tại sao Group By của Mysql và Group by Oracle lại khác nhau

  4. Cài đặt Oracle Instant Client

  5. Bằng (=) so với LIKE cho kiểu dữ liệu ngày tháng