前言:使用Oracle開發(fā)系統(tǒng)過程中,會涉及到數(shù)據(jù)庫用戶的建立,及給該用戶分配權(quán)限。剛開始接觸開發(fā)的時候,對這些操作是一種茫茫然的狀態(tài)。后,經(jīng)過積累,對這方面有了一定的認識,現(xiàn)總結(jié)一些,一則,鞏固自身,也希望收到大家的指正;再則,希望能幫助疑惑的童鞋,實現(xiàn)人生的小價值,嘿嘿嘿。
創(chuàng)建用戶以及授權(quán)代碼:
-- Create the user
create user myName -- 創(chuàng)建用戶
identified by myPwd --設置密碼
default tablespace USERS --默認表空間 USERS
temporary tablespace TEMP --默認臨時表空間 TEMP
profile DEFAULT;
-- Grant/Revoke role privileges 給用戶 授予/撤銷 角色權(quán)限
grant ctxapp to myName; --沒有搞清意思,但是沒有這句話,運行時,語句好像報錯
grant exp_full_database to myName; --賦給用戶 exp_full_database權(quán)限 有這個權(quán)限 就可以執(zhí)行全庫方式的導出
grant imp_full_database to myName; --賦給用戶 imp_full_database權(quán)限 有這個權(quán)限 就可以執(zhí)行全庫方式的導入
-- Grant/Revoke system privileges --給用戶授予/撤銷系統(tǒng)權(quán)限
grant change notification to myName;
grant create any directory to myName;--創(chuàng)建任何文件夾
grant create any table to myName;--創(chuàng)建任何表
grant drop any directory to myName;--刪除任何文件夾
grant execute any procedure to myName;--執(zhí)行任何存儲過程
grant unlimited tablespace to myName; --無限制的表空間配額
--直接將某些角色所有的權(quán)限轉(zhuǎn)給用戶
grant ctxapp to myName; --沒有搞清意思,但是沒有這句話,運行時,語句好像報錯
grant connect to myName;--將connect角色的權(quán)限給myName用戶
grant dba to myName; --將dba角色的權(quán)限給myName用戶
grant resource to myName;--將resource角色的權(quán)限給myName用戶
如上代碼所示,我創(chuàng)建用戶的代碼共有四個小塊,
第一步是創(chuàng)建用戶,并默認表空間與臨時表空間(這兩個名詞解釋,在網(wǎng)上查閱了一番,還是有些茫然,先給出解釋的連接,再希望有心人能為我解惑),
第二步與第三步是授權(quán)給該用戶一些具體權(quán)限,各權(quán)限具體功能可參考注釋
第四步是分別將三個角色的權(quán)限轉(zhuǎn)給用戶,以下詳細介紹這三個角色
DBA:擁有全部特權(quán),是系統(tǒng)最高權(quán)限,只有DBA才可以創(chuàng)建數(shù)據(jù)庫結(jié)構(gòu)。
RESOURCE:擁有Resource權(quán)限的用戶只可以創(chuàng)建實體,不可以創(chuàng)建數(shù)據(jù)庫結(jié)構(gòu)(比較疑惑這個概念)。
CONNECT:擁有Connect權(quán)限的用戶只可以登錄Oracle,不可以創(chuàng)建實體(實體應該就是數(shù)據(jù)庫,數(shù)據(jù)表、字段、觸發(fā)器、存儲過程等吧),不可以創(chuàng)建數(shù)據(jù)庫結(jié)構(gòu)。
對于普通用戶:授予connect, resource權(quán)限。
對于DBA管理用戶:授予connect,resource, dba權(quán)限。
注:數(shù)據(jù)庫結(jié)構(gòu)與實體的概念我也有些模糊,對其的理解只是猜測,在網(wǎng)上也沒有查詢到詳細概念,希望專家解惑。。。。
關(guān)于各角色的具體權(quán)限也可以通過以下sql語句進行查詢
select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
select grantee,privilege from dba_sys_privs where grantee='CONNECT' order by privilege;
select grantee,privilege from dba_sys_privs where grantee='DBA' order by privilege;
如圖:查詢的是 RESOURCE 角色的權(quán)限
![](/d/20211018/e9ca8e97322e60ce95e8d57dea01676c.gif)
關(guān)于創(chuàng)建用戶知識點的總結(jié)就到這里了,還有一些不足的地方,望大家指正。
另附上在cmd 命令框架中,導出,導入數(shù)據(jù)庫的語句,請大家一并笑納,嘿嘿
導出語句以及實例
exp 用戶名/密碼@服務器IP/ORCL file=e:\0202daochu.dmp owner=(用戶名)
exp myName/myPwd@127.0.0.1/ORCL file=e:\0202daochu.dmp owner=(myName)
導入語句以及實例
imp 用戶名/密碼@服務器IP/ORCL ignore=y full=y file=e:\0202daochu.dmp log=e:\log0202.log
imp myName2/myPwd2@127.0.0.1/ORCL ignore=y full=y file=e:\0202daochu.dmp log=e:\log0202.log
以上語句是將 用戶名為 myName的數(shù)據(jù)庫導出,在E盤生成文件 0202daochu,
并通過導入語句,將數(shù)據(jù)庫內(nèi)容導入給myName2用戶,并生成日志文件
以上這篇Oracle數(shù)據(jù)庫創(chuàng)建用戶與數(shù)據(jù)庫備份小結(jié)(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
大體操作流程: ctrl+r ,切出運行程序,輸入cmd ,在控制臺輸入以上相應語句,即可,如下圖為導出myName數(shù)據(jù)庫
![](/d/20211018/074c2ef358b039ccd34425b2c7162da0.gif)
您可能感興趣的文章:- 解決oracle12c創(chuàng)建用戶提示ORA-65096:公用用戶名或角色無效問題
- 使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
- oracle創(chuàng)建表空間、授權(quán)、創(chuàng)建用戶、導入dmp文件
- Oracle 創(chuàng)建用戶及數(shù)據(jù)表的方法
- oracle命令行刪除與創(chuàng)建用戶的代碼
- oracle創(chuàng)建用戶過程詳解