我想在 oracle 11g 中创建一个用户/模式并将所有权限授予用户。我怎样才能用一个简单的脚本做到这一点。我查看了以下链接,但我不确定使用哪一个或者这些语句是否是最好的方法。
http://ss64.com/ora/grant.html
你能建议我如何以最简单的方式安全地做到这一点吗?
我想在 oracle 11g 中创建一个用户/模式并将所有权限授予用户。我怎样才能用一个简单的脚本做到这一点。我查看了以下链接,但我不确定使用哪一个或者这些语句是否是最好的方法。
http://ss64.com/ora/grant.html
你能建议我如何以最简单的方式安全地做到这一点吗?
要创建新用户,请使用“ 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;
创建用户:
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 ;