2012-08-11 18 views
8

Tôi muốn tạo người dùng/lược đồ trong oracle 11g và cấp tất cả các đặc quyền cho người dùng. Làm thế nào tôi có thể làm điều này với một kịch bản đơn giản. Tôi đã xem các liên kết sau nhưng tôi không chắc chắn nên sử dụng liên kết nào hoặc nếu các câu lệnh này là cách tốt nhất.Báo cáo Oracle 11g để tạo người dùng mới và cấp đặc quyền?

http://ss64.com/ora/grant.html

Bạn có thể đề nghị làm thế nào tôi có thể làm điều này theo cách đơn giản nhất có thể và một cách an toàn?

Trả lời

8

Để tạo người dùng mới, bạn sử dụng lệnh "tạo người dùng". Do đó, lệnh tạo người dùng điển hình sẽ là:

create user test identified by test default tablespace mytbsp. 

Tất nhiên bạn cần thay thế giá trị cho người dùng, mật khẩu và không gian bảng bằng các giá trị khác nhau. Tuy nhiên tôi khuyên bạn nên xem tài liệu của Oracle http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm.

Bước tiếp theo là cấp cho người dùng quyền tương ứng. Để cung cấp cho người dùng tất cả các quyền là một cách tiếp cận rất xấu như bạn cũng sẽ cho anh ta đặc quyền dba. Những gì bạn thay vào đó là để cho anh ta đặc quyền kết nối và quyền truy cập vào không gian bảng mặc định của mình. Ngoài ra, tốt hơn nên sử dụng vai trò thay vì cấp quyền trực tiếp. Vì vậy, nếu bạn phải cấp lại quyền, bạn chỉ cần cấp vai trò đó. Bước đầu tiên là tạo vai trò:

GRANT CREATE session, CREATE table, CREATE view, 
     CREATE procedure,CREATE synonym, 
     ALTER table, ALTER view, ALTER procedure,ALTER synonym, 
     DROP table, DROP view, DROP procedure,DROP synonym 
     TO MyRole; 

Tuyên bố này không đầy đủ bạn có thể yêu cầu quyền bổ sung (chỉ mục duy trì ví dụ), nhưng hãy xem tài liệu hướng dẫn trực tuyến.

Sau đó, bạn cấp vai trò cho người dùng mới được tạo.

GRANT myrole to test; 
+1

Tôi có thể làm GRANT ALL cho MyRole không? –

+1

vì tôi đã giải thích đây là một cách tiếp cận thực sự xấu. về cơ bản bạn làm cho mọi người trở thành một dba, vô hiệu hóa tất cả các cá nhân, bạn thực sự cần phải suy nghĩ về an ninh – steve

+0

Làm cách nào để quyết định những đặc quyền nào cần cấp và thu hồi quyền nào? –

4

Tạo người dùng:

create user user_name identified by password ; 

Cấp đặc quyền:

grant all privilege to user_name; 

Nếu bạn muốn xem các số ưu đãi:

select * from system_privilege_map where neme like '%PRIV%'; 

Nếu bạn muốn xem các đặc quyền được gán cho người dùng:

select count (*) , grantee 
from dba_sys_privs 
where grantee in ('user1','user2') 
group by grantee ;