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;

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

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

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 回答