Có thể tạo một người dùng cơ sở dữ liệu chỉ đọc tại một cơ sở dữ liệu Oracle? Làm cách nào?Oracle - Làm thế nào để tạo một người dùng readonly
Trả lời
Một người sử dụng trong một cơ sở dữ liệu Oracle chỉ có những đặc quyền 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 một 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 cho rằng
GRANT CREATE SESSION to ro_user
và sau đó bạn có thể cấp bất kỳ 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 cái gì đó như
GRANT SELECT ON schema_name.table_name TO ro_user
Nói chung, bạn nên tạo ra một vai trò, tuy nhiên, và cấp ưu đãi đối tượng với vai diễn để bạn sau đó có thể cấp vai trò cho những người dùng khác nhau. Một cái gì đó như
Tạo vai trò
CREATE ROLE ro_role;
Grant vai trò CHỌN truy cập trên tất cả các 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;
create user ro_role identified by ro_role;
grant create session, select any table, select any dictionary to ro_role;
Đó là n ot hoàn toàn có thể trong db mặc định do nhiều thực thi công khai mà mỗi người dùng sẽ tự động nhận được thông qua công khai.
Thực hiện các thủ tục sau đây ví dụ như hệ thống người dùng.
Set p_owner cho chủ sở hữu schema và p_readonly đến tên của người sử dụng readonly.
create or replace
procedure createReadOnlyUser(p_owner in varchar2, p_readonly in varchar2)
AUTHID CURRENT_USER is
BEGIN
execute immediate 'create user '||p_readonly||' identified by '||p_readonly;
execute immediate 'grant create session to '||p_readonly;
execute immediate 'grant select any dictionary to '||p_readonly;
execute immediate 'grant create synonym to '||p_readonly;
FOR R IN (SELECT owner, object_name from all_objects where object_type in('TABLE', 'VIEW') and owner=p_owner) LOOP
execute immediate 'grant select on '||p_owner||'.'||R.object_name||' to '||p_readonly;
END LOOP;
FOR R IN (SELECT owner, object_name from all_objects where object_type in('FUNCTION', 'PROCEDURE') and owner=p_owner) LOOP
execute immediate 'grant execute on '||p_owner||'.'||R.object_name||' to '||p_readonly;
END LOOP;
FOR R IN (SELECT owner, object_name FROM all_objects WHERE object_type in('TABLE', 'VIEW') and owner=p_owner) LOOP
EXECUTE IMMEDIATE 'create synonym '||p_readonly||'.'||R.object_name||' for '||R.owner||'."'||R.object_name||'"';
END LOOP;
FOR R IN (SELECT owner, object_name from all_objects where object_type in('FUNCTION', 'PROCEDURE') and owner=p_owner) LOOP
execute immediate 'create synonym '||p_readonly||'.'||R.object_name||' for '||R.owner||'."'||R.object_name||'"';
END LOOP;
END;
bạn có thể tạo người dùng và đặc quyền cấp
tạo người dùng READ_ONLY xác định bởi READ_ONLY; cấp phiên tạo, chọn bất kỳ bảng nào để đọc_chỉ;
- 1. Làm thế nào để tạo ra một CheckBox và làm cho nó READONLY?
- 2. Làm thế nào để tạo ra một tế bào excel ReadOnly bằng C#?
- 3. Cách tạo người dùng trong nhà phát triển Oracle SQL
- 4. Làm thế nào để làm cho DropDownList readonly trong C#
- 5. Cách tạo người dùng trong Oracle 11g và cấp quyền
- 6. Làm thế nào để tạo một bãi chứa với Oracle PL/SQL Developer?
- 7. Lấy Người dùng Nhập để tạo Người dùng ở Django
- 8. Báo cáo Oracle 11g để tạo người dùng mới và cấp đặc quyền?
- 9. Làm cách nào để tạo người dùng ở Django?
- 10. Làm cách nào để "cấp cho người dùng tạo" dưới dạng người dùng không phải là người dùng root?
- 11. Làm cách nào để tạo người dùng postgresql bằng vải
- 12. thả thác người dùng trong Oracle
- 13. Làm thế nào để xóa người dùng FTP trong ssh?
- 14. Làm thế nào để tạo một cơ sở dữ liệu trong xe oracle?
- 15. Làm cách nào để cho phép người dùng chọn trong phần tử readOnly html trên safari trên iPad?
- 16. Giao diện người dùng để tạo tệp kiểm soát Oracle SQL Loader
- 17. Tôi làm cách nào để sử dụng tập lệnh để tạo người dùng trong mongodb?
- 18. Làm cách nào để hiển thị tất cả các đặc quyền từ người dùng trong oracle?
- 19. Django - Tạo hồ sơ người dùng khi tạo người dùng
- 20. Tạo người dùng với tùy chọn quản trị lệnh oracle 11g không làm việc
- 21. Làm thế nào để thả Oracle LOB
- 22. Làm thế nào để viết một bảng chữ trong Oracle?
- 23. Tôi làm cách nào để đăng nhập một người dùng?
- 24. Rails - Làm thế nào để tiêu diệt người dùng tạo theo Devise?
- 25. Làm thế nào để xóa người dùng trong Oracle 10 bao gồm tất cả đó là tablespace và datafiles
- 26. Oracle: cách đặt mật khẩu người dùng chưa hết hạn?
- 27. Ủy quyền và vai trò người dùng trong Oracle Apex?
- 28. Làm thế nào tôi có thể ràng buộc một trường để một điều khiển người dùng
- 29. Làm thế nào để cắt bớt tất cả các bảng người dùng?
- 30. Làm thế nào để đọc đầu vào của người dùng thành một biến trong Bash?