9

Oracle 11g でユーザー/スキーマを作成し、すべての権限をユーザーに付与したいと考えています。簡単なスクリプトでこれを行うにはどうすればよいですか。次のリンクを見ましたが、どれを使用すればよいのか、これらのステートメントが最適な方法なのかわかりません。

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

最も簡単で安全な方法でこれを行う方法を提案できますか?

4

2 に答える 2

9

新しいユーザーを作成するには、「create user」コマンドを使用します。したがって、典型的なユーザー作成コマンドは次のようになります。

create user test identified by test default tablespace mytbsp.

もちろん、ユーザー、パスワード、およびテーブルスペースの値を別の値に置き換える必要があります。ただし、Oracle のドキュメント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;

このステートメントは完全ではありません。追加の権利 (たとえば、インデックスのメンテナンス) が必要になる場合がありますが、オンラインのオラクル ドキュメントを参照してください。

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

GRANT myrole to test;
于 2012-08-11T18:03:27.307 に答える
4

ユーザーを作成します。

create user user_name identified by password ;

権限を付与します。

grant all privilege to user_name;

権限の数を表示する場合:

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

ユーザーに割り当てられた権限を表示する場合:

select count (*) , grantee
from dba_sys_privs 
where grantee in ('user1','user2')
group by grantee ;
于 2015-04-24T06:53:01.833 に答える