2012-08-11 20 views
8

oracle 11gでユーザー/スキーマを作成し、すべての権限をユーザーに付与したいとします。簡単なスクリプトでこれをどうすればいいのですか?私は次のリンクを見ましたが、どちらを使うべきか、あるいはこれらの記述が最良の方法であるかどうかはわかりません。Oracle 11gステートメントを使用して新しいユーザー権限と付与権限を作成しますか?

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

は、私は、できるだけ簡単な方法でこれを行うと、しっかりできるかを提案することはできますか?

答えて

8

新しいユーザーを作成するには、 "ユーザーの作成"コマンドを使用します。そのため、典型的なユーザー作成コマンドは、次のようになります。

create user test identified by test default tablespace mytbsp. 

もちろん、ユーザー、パスワード、および表スペースの値を異なる値に置き換える必要があります。しかし、オラクルのドキュメントhttp://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htmをご覧になることをお勧めします。

次の手順は、ユーザーに対応する権限を与えることです。ユーザーにすべての権限を与えることは、dba権限を与えると同時に非常に悪い方法です。代わりに、彼に彼のデフォルトの表スペースへのアクセス権とアクセス権を与えることです。また、権利を直接付与するのではなく、役割を使用する方がよいでしょう。したがって、権利を再度付与する必要がある場合は、ロールを付与するだけです。

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; 

は、この文を使用すると、追加の権利を必要とするかもしれない(例えばインデックスのメンテナンス)を完了されていないが、オンラインOracleのドキュメントを見て:最初のステップは、ロールを作成することです。

その後、新しく作成されたユーザーにロールを付与します。

GRANT myrole to test; 
+1

私はGRANT ALLをMyRoleにすることはできますか? –

+1

私はこれが本当に悪いアプローチだと説明したので。あなたは基本的にすべての権限をdbaにし、すべての権限を無効にすると、セキュリティについて本当に考える必要があります – steve

+0

付与する権限と取り消す権限を決定するにはどうすればよいですか? –

4

ユーザーを作成します:あなたがしたい場合は

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

:あなたは特権の数を表示したい場合は

grant all privilege to user_name; 

create user user_name identified by password ; 

は、権限を付与しますユーザに割り当てられた権限を表示する:

select count (*) , grantee 
from dba_sys_privs 
where grantee in ('user1','user2') 
group by grantee ; 
関連する問題