新聞中心
如何給oracle用戶(hù)設(shè)置權(quán)限
一、創(chuàng)建
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括忻州網(wǎng)站建設(shè)、忻州網(wǎng)站制作、忻州網(wǎng)頁(yè)制作以及忻州網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,忻州網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到忻州省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
sys;//系統(tǒng)管理員,擁有最高權(quán)限
system;//本地管理員,次高權(quán)限
scott;//普通用戶(hù),密碼默認(rèn)為tiger,默認(rèn)未解鎖
如何控制oracle用戶(hù)的權(quán)限
權(quán)限允許用戶(hù)訪問(wèn)屬于其它用戶(hù)的對(duì)象或執(zhí)行程序,
ORACLE系統(tǒng)提供權(quán)限:Object 對(duì)象級(jí)、System 系統(tǒng)級(jí)
1.系統(tǒng)權(quán)限(系統(tǒng)權(quán)限是對(duì)用戶(hù)而言):
DBA擁有最高的系統(tǒng)權(quán)限:
1,可以創(chuàng)建用戶(hù)
語(yǔ)法:create user username identified by password;
例如:create user briup identified by briup;
當(dāng)用戶(hù)創(chuàng)建成功之后,此用戶(hù)什么權(quán)限都沒(méi)有,甚至不能登錄數(shù)據(jù)庫(kù)。
2. 賦予權(quán)限:
一個(gè)用戶(hù)應(yīng)該具有的基本權(quán)限包含:
CREATE SESSION
CREATE TABLE
CREATE SEQUENCE
CREATE VIEW
CREATE PROCEDURE
如果有多個(gè)用戶(hù)他們都具有相同的權(quán)限(create session,create table,create sequence),賦予權(quán)限的動(dòng)作過(guò)于麻煩,要給每個(gè)用戶(hù)分別制定這些權(quán)限,因此oracle提出角色的概念,可以將權(quán)限賦值給角色,然后再將角色賦值給用戶(hù)。
例如,我們當(dāng)初在進(jìn)行操作時(shí)寫(xiě)的:
grant resource,connect to briup;
此時(shí)resource,connect就是角色。
查詢(xún)r(jià)esource,connect 具有哪些權(quán)限可以使用:
select privilege,role
from role_sys_privs
where role = 'CONNECT' or role ='RESOURCE';
語(yǔ)法:
grant xxxx to user_name ;
例如:
grant create view to briup;
3.回收權(quán)限
語(yǔ)法:revoke xxx from user_name;
例如:
revoke create view from briup;
4.修改密碼:
語(yǔ)法:alter user xxx identified by xxxx;
例如:
alert user briup identified by briup;
5.刪除用戶(hù):
語(yǔ)法:drop user username [cascade];
note: cascade:當(dāng)用戶(hù)下有表的時(shí)候,必須使用cascade級(jí)聯(lián)刪除。
例如: drop user test cascade;
2.對(duì)象權(quán)限(針對(duì)對(duì)象,類(lèi)似表對(duì)象等):
對(duì)象權(quán)限:select, update, insert, alter, index, delete, all //all包括所有權(quán)限
對(duì)象的 擁有者擁有所有的權(quán)限。
1.給用戶(hù)賦予操作對(duì)象的權(quán)限:
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION]; //允許分配到權(quán)限的用戶(hù)繼續(xù)將權(quán)限分配給其它用戶(hù)
例如:
grant select on s_emp to jd1613;
給jd1613用戶(hù)賦予在s_emp表上進(jìn)行查詢(xún)的權(quán)利。
grant update(id) on s_emp to jd1613;
給jd1613賦予能夠更新s_emp表上id列的權(quán)限。
2.回收權(quán)限:同系統(tǒng)權(quán)限。
語(yǔ)法:revoke xxx on obj from user;
note: 通過(guò)with grant option賦予額權(quán)限也會(huì)被回收。
例如:
revoke select , update on s_emp from jd1613;
3.創(chuàng)建同義詞: 相當(dāng)于給對(duì)象起別名
語(yǔ)法:create[public] synonym sy_name for obje_name;
note:只有dba才有權(quán)利創(chuàng)建public的同義詞
例如:
create synonym emp for s_emp;
4.刪除同義詞:
語(yǔ)法: drop synonym syn_name;
例如:
drop synonym emp;
5.導(dǎo)出數(shù)據(jù)庫(kù)
exp,imp不屬于sqlplus的命令,所以不是在sqlplus終端執(zhí)行的。
系統(tǒng)終端:exp userid=briup/briup full=y file=briup.dmp
導(dǎo)入:imp userid=briup/briup full=y file=briup.dmp;
ORACLE中怎么設(shè)置SEQUENCE權(quán)限?
ORACLE中怎么設(shè)置SEQUENCE權(quán)限步驟如下:
1、Create Sequence
首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE權(quán)限。
創(chuàng)建語(yǔ)句如下:
CREATE?SEQUENCE seqTest
INCREMENT?BY?1?--?每次加幾個(gè)
START?WITH?1?--?從1開(kāi)始計(jì)數(shù)
NOMAXvalue?--?不設(shè)置最大值
NOCYCLE?--?一直累加,不循環(huán)
CACHE?10;?--設(shè)置緩存cache個(gè)序列,如果系統(tǒng)down掉了或者其它情況將會(huì)導(dǎo)致序列不連續(xù),也可以設(shè)置為---------NOCACHE
2、得到Sequence值?
定義好sequence后,你就可以用currVal,nextVal取得值。
CurrVal:返回 sequence的當(dāng)前值
NextVal:增加sequence的值,然后返回 增加后sequence值
得到值語(yǔ)句如下:
SELECT?Sequence名稱(chēng).CurrVal?FROM?DUAL;?
如得到上邊創(chuàng)建Sequence值的語(yǔ)句為:
select?seqtest.currval?from?dual
在Sql語(yǔ)句中可以使用sequence的地方:
- 不包含子查詢(xún)、snapshot、VIEW的 SELECT 語(yǔ)句
- INSERT語(yǔ)句的子查詢(xún)中
- INSERT語(yǔ)句的values中
- UPDATE 的 SET中
如在插入語(yǔ)句中
insert?into?表名(id,name)values(seqtest.Nextval,'sequence?插入測(cè)試');
3、Alter Sequence?
擁有ALTER ANY SEQUENCE 權(quán)限才能改動(dòng)sequence. 可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須 drop sequence 再 re-create。
4、Drop Sequence
DROP?SEQUENCE?seqTest;?
5、一個(gè)例子
create?or?replace?trigger?tri_test_id
before?insert?on?S_Depart???--S_Depart?是表名
for?each?row
declare
nextid?number;
begin
IF?:new.DepartId?IS?NULLor?:new.DepartId=0?THEN?--DepartId是列名
select?SEQ_ID.nextval?--SEQ_ID正是剛才創(chuàng)建的
into?nextid
from?sys.dual;
:new.DepartId:=nextid;
end?if;
end?tri_test_id;
分享文章:oracle怎么設(shè)置權(quán)限,oracle怎么賦予權(quán)限
文章來(lái)源:http://www.dlmjj.cn/article/dssdopi.html