我想在oracle 11g中创建一个用户/模式并授予用户所有权限。我怎样才能用一个简单的脚本来做到这一点。我看了下面的链接,但我不确定使用哪一个或者这些语句是否是最好的方式。Oracle 11g语句创建新用户和授予特权?
http://ss64.com/ora/grant.html
您能否提供我怎么可以在最简单的方式做到这一点,安全?
我想在oracle 11g中创建一个用户/模式并授予用户所有权限。我怎样才能用一个简单的脚本来做到这一点。我看了下面的链接,但我不确定使用哪一个或者这些语句是否是最好的方式。Oracle 11g语句创建新用户和授予特权?
http://ss64.com/ora/grant.html
您能否提供我怎么可以在最简单的方式做到这一点,安全?
要创建新用户,请使用“创建用户”命令。因此,典型的创建用户命令是:
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;
创建用户:如果你想查看的权限数量
grant all privilege to user_name;
:
select * from system_privilege_map where neme like '%PRIV%';
如果你想
create user user_name identified by password ;
授予特权查看分配给用户的权限:
select count (*) , grantee
from dba_sys_privs
where grantee in ('user1','user2')
group by grantee ;
我可以做所有的MyRole吗? – 2012-08-11 19:27:13
正如我所解释的,这是一个非常糟糕的做法。你基本上让每个人都成为一名dba,禁用所有特权,你真的需要考虑安全 – steve 2012-08-11 19:32:52
如何决定授予哪些特权以及撤销哪些特权? – 2012-08-11 20:13:57