使用者許可權繼承另一使用者的許可權

us_yunleiwang發表於2013-11-29

要求:新建使用者i2ksnmp的許可權要和資料庫已經存在的DBSNMP使用者的許可權一樣。

1. 建立新使用者i2ksnmp 
create user i2ksnmp identified by i2ksnmp;

2. 檢視DBSNMP使用者的所有系統許可權
select privilege from dba_sys_privs where grantee='DBSNMP'  
union  
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DBSNMP' ); 
如下,得到DBSNMP使用者的所有系統許可權:
PRIVILEGE
----------------------------------------
ADVISOR
ANALYZE ANY
ANALYZE ANY DICTIONARY
CREATE JOB
CREATE PROCEDURE
CREATE SESSION
CREATE TABLE
MANAGE ANY QUEUE
SELECT ANY DICTIONARY
UNLIMITED TABLESPACE

3. 然後將上面的許可權都賦予新建使用者即可
比如:
grant ANALYZE ANY DICTIONARY to i2ksnmp;

 

附加:
這裡簡單的整合了上面的方法:
set feedback off heading off verify off trimspool off
set pagesize 0 linesize 200
define user=test   ---&gt 這裡是新建使用者名稱
select 'grant  '||privilege||'  to &user;' from dba_sys_privs where grantee = 'DBSNMP'
union  
select 'grant  '||privilege||'  to &user;' from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee = 'DBSNMP'); 
然後將上面列印在螢幕上的複製執行就可以了

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23490154/viewspace-1061689/,如需轉載,請註明出處,否則將追究法律責任。

相關文章