先是dba的身份進(jìn)入數(shù)據(jù)庫(kù),才可以給別的用戶授權(quán)!
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十載品質(zhì),值得信賴!
使用dba身份進(jìn)入:conn sys/sys as sysdba;
然后就可以授權(quán)了:grant dba to scott
dba:是個(gè)權(quán)限名字,scott是個(gè) 用戶名,想給別的用戶授權(quán)的話換成那個(gè)用戶的名字就可以了,權(quán)限名也可以改,還有 connection,create table等權(quán)限。
oracle可以通過(guò)設(shè)置表的權(quán)限來(lái)設(shè)定用戶對(duì)表的訪問(wèn)權(quán)限。
通過(guò)dba權(quán)限用戶或者表的擁有者用戶來(lái)設(shè)定相關(guān)權(quán)限。
基本的權(quán)限主要有三個(gè),select,update和delete.
其實(shí)還有一個(gè)alter權(quán)限,不過(guò)這個(gè)權(quán)限不建議授予,這個(gè)還是掌握在dba手中比較好。不然將來(lái)會(huì)很麻煩。
授權(quán)語(yǔ)句大同小異,只是dba授權(quán)的話,需要加上表的所屬用戶。
舉例:比如要把a(bǔ)aa用戶下的a表,授予bbb用戶。dba用戶為ccc
那么用aaa用戶的授權(quán)語(yǔ)句為
grant select on a to bbb;
使用ccc用戶的授權(quán)語(yǔ)句為
grant select on aaa.a to bbb;
其他的update,和delete只要把select 替換就好。
當(dāng)然如果三個(gè)權(quán)限都想授予。那么可以考慮grant all on a to bbb;
grant create table to username;
grant create view to username;
grant dba to username;
revoke create table from username;
revoke dba from username;
它的權(quán)限多了。系統(tǒng)、對(duì)象、角色權(quán)限。你看賦予和收回的命令,就和上面類似。當(dāng)英文讀就可以了。
安裝ORACLE提示權(quán)限不夠說(shuō)明使用的用戶不正確,“$?”操作符說(shuō)明你使用的是oracle用戶,請(qǐng)改用root用戶執(zhí)行這個(gè)腳本。
改用root用戶執(zhí)行的方法:
使用root 修改/usr/oracle/database整個(gè)目錄的權(quán)限
# chown -R oracle:oinstall /usr/local/oracle/database
然后再chmod。
正規(guī)流程是:
1、root 建立oracle用戶;
2、為oracle用戶建立/u01目錄;
3、同時(shí)為oracle 用戶付權(quán)限;
4、重新設(shè)置linux內(nèi)核參數(shù)。
權(quán)限允許用戶訪問(wèn)屬于其它用戶的對(duì)象或執(zhí)行程序,
ORACLE系統(tǒng)提供權(quán)限:Object 對(duì)象級(jí)、System 系統(tǒng)級(jí)
1.系統(tǒng)權(quán)限(系統(tǒng)權(quán)限是對(duì)用戶而言):
DBA擁有最高的系統(tǒng)權(quán)限:
1,可以創(chuàng)建用戶
語(yǔ)法:create user username identified by password;
例如:create user briup identified by briup;
當(dāng)用戶創(chuàng)建成功之后,此用戶什么權(quán)限都沒(méi)有,甚至不能登錄數(shù)據(jù)庫(kù)。
2. 賦予權(quán)限:
一個(gè)用戶應(yīng)該具有的基本權(quán)限包含:
CREATE SESSION
CREATE TABLE
CREATE SEQUENCE
CREATE VIEW
CREATE PROCEDURE
如果有多個(gè)用戶他們都具有相同的權(quán)限(create session,create table,create sequence),賦予權(quán)限的動(dòng)作過(guò)于麻煩,要給每個(gè)用戶分別制定這些權(quán)限,因此oracle提出角色的概念,可以將權(quán)限賦值給角色,然后再將角色賦值給用戶。
例如,我們當(dāng)初在進(jìn)行操作時(shí)寫(xiě)的:
grant resource,connect to briup;
此時(shí)resource,connect就是角色。
查詢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.刪除用戶:
語(yǔ)法:drop user username [cascade];
note: cascade:當(dāng)用戶下有表的時(shí)候,必須使用cascade級(jí)聯(lián)刪除。
例如: drop user test cascade;
2.對(duì)象權(quán)限(針對(duì)對(duì)象,類似表對(duì)象等):
對(duì)象權(quán)限:select, update, insert, alter, index, delete, all //all包括所有權(quán)限
對(duì)象的 擁有者擁有所有的權(quán)限。
1.給用戶賦予操作對(duì)象的權(quán)限:
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION]; //允許分配到權(quán)限的用戶繼續(xù)將權(quán)限分配給其它用戶
例如:
grant select on s_emp to jd1613;
給jd1613用戶賦予在s_emp表上進(jì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;
普通用戶可以有的最高權(quán)限是dba。數(shù)據(jù)庫(kù)本身的最高權(quán)限用戶是sys。 給一個(gè)普通用戶wen授予dba權(quán)限 首先連接到sys sqlplus /nolog SQLconn / as sysdba SQLgrant dba to wen; OK