我想在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