Oracle 11g语句创建新的用户和授予权限?

时间:2012-08-11 07:11:57

标签: oracle11g

我想在oracle 11g中创建用户/模式,并为用户授予所有权限。我怎么能用一个简单的脚本来做到这一点。我查看了以下链接,但我不确定使用哪一个或者这些陈述是最好的方式。

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

你能否建议我如何以最简单的方式安全地做到这一点?

2 个答案:

答案 0 :(得分:9)

要创建新用户,请使用“创建用户”命令。因此,典型的创建用户命令将是:

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;

此声明不完整您可能需要其他权限(例如索引维护),但请查看在线oracle文档。

之后,您将角色授予新创建的用户。

GRANT myrole to test;

答案 1 :(得分: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 ;