oracle安裝成功後,會默認生成三個用戶:
sys用戶:超級管理員,全縣最高,他的角色是dba,,密碼默認是change_on_install;
system用戶:是系統管理員,權限也比較高,他的角色是dbaoper;密碼默認是manager;
scott用戶:普通用戶,密碼默認是tiger。
sys 與 system 的區別:
sys 有create database 的權限,而system 沒有,其他相似。
1、創建用戶:在oracle中創建一個新的用戶使用create user 語句,一般要具有dba(數據庫管理員)的權限才能使用
eg: create user xiaomign identified by m123;//create user 是關鍵詞,xiaoming是用戶名。
//identified by 是關鍵詞,m123是密碼
2、給用戶修改密碼:
(1)給自己修改密碼的SQL語句:
password 用戶名;//用戶名也可以不用
(2)如果給別人修改密碼則需要具有dba 權限的或者擁有 alter user 的系統權限,修改密碼的SQL語句是:
alter user 用戶名 identified by 新密碼;
3、刪除用戶:一般以dba的身份去刪除某個用戶。自己刪除自己是不允許的。刪除用戶的SQL語句如下:
drop user 用戶名 [cascade];//帶上cascade是指將該用戶創建的表都刪除
如果在刪除用戶時,注意如果要刪除的用戶已經創建了表,需要在刪除的時候
帶上一個參數:cascade。
4、權限的賦予和收回(grant、revoke)
新創建的用戶:沒有登錄數據庫的權限,需要爲其指定相應的權限,
給一個用戶賦權限使用命令 grant;收回權限使用命令revoke。
可以使用system或者sys給需要登錄權限的用戶賦權限。
(1)賦權限的SQL語句如下:
grant connect to xiaoming ;
然後授權成功就可以登錄了:conn xiaoming/m123;
grant resource to xiaoming;//授權成功,就可以建表了
create table test(useId varchar2(30),username varchar2(30));
(2)希望小明去查詢scott的emp表:先授權給xiaoming---再用xiaomign登錄---查找,
grant select on emp to xiaoming;//system.sys.scott可以授權給xiaoming
conn xiaoming/m123;
select * from scott.emp;//提到方案的概念,找Scott下的emp表
(3)希望小明去修改scott的emp表:先授權給xiaoming--再用xiaomign登錄--修改,
grant update on emp to xiaoming;//system.sys.scott可以授權給xiaoming
conn xiaoming/m123;
update * from scott.emp;//提到方案的概念,找Scott下的emp表
(4)希望小明去修改、刪除、查詢、添加scott的emp表:先授權給xiaoming--再用xiaomign登錄--修改、刪除、查詢、添加,
grant all on emp to xiaoming;//system.sys.scott將emp這張表的所有權限授權給xiaoming
(5)scott希望收回xiaoming對emp的全部權限
conn scott/tiger;
revoke select on emp from xiaoming;//收回xiaoming 查詢emp表的權限
select * from scott.emp;//會得到表或視圖不存在
5、切換用戶的SQL語句: conn system/manager;
6、對權限的維護
//希望xiaoming 用戶可以去查詢scott的emp表,並且希望xiaoming 能把這種權限給別人;
(1)如果是對象權限,直接在後邊加上with grant option
grant select on emp to xiaoming with grant option;//設置xiaoming可以給別的用戶賦權限
conn system/manager;//連上system用戶
create user xiaohong identified by m123;//用system用戶創建xiaohong用戶
grant connect to xiaohong;//給xiaohong 賦登錄數據庫的權限
conn xiaoming/m123;//登錄xiaoming 用戶,嘗試用xiaoming用戶給xiaohong賦權限
grant select on scott.emp to xiaohong;//給xiaohong賦查詢scott的emp表的權限
(2)如果是系統權限,直接在後邊加上withadmin option
grant connect to xiaoming with admin option;//設置xiaoming可以給其他用戶賦相同的系統權限
注意:如果scott把xiaoming對emp表的查詢權限收回,那麼xiaohong的權限還有嗎?沒有了,被回收了
7、使用profile管理用戶口令
profile是口令限制,資源限制的命令集合,當建立數據庫時,oracle會自動建立名稱爲default的
profile。當建立用戶沒有指定profile選項,那oracle就會將default分配給用戶。
(1)鎖定賬戶:指定該用戶登錄時最多可以輸入密碼的次數,也可指定用戶賬戶鎖定的時間,一般
用dba的身份去執行該命令。
例如:指定scott這個用戶最多隻能嘗試3次登錄,鎖定時間爲2天,
創建profile文件的SQL語句:
//創建配置文件
create profile lock-account limit falied_login_attempts3 password_lock_time 2;//紅色部分是可以改變的
//將配置文件用在tea用戶上
alter user tea profile lock_account;
(2)給用戶解鎖
alter user tea account unlock;//紅色是可改變的,是指需要解鎖的用戶
(3)終止口令
爲了讓用戶定期修改密碼可以使用終止口令的指令來完成,同樣這個命令也需要dba身份來操作。
例子:給前面創建的用戶xiaoming創建一個profile文件,要求該用戶每隔10天要修改自己的登錄密碼,寬限期爲2天。
create profile myprofile limit password_life_time10 password_grace_time 2;
alter user xiaoming profilemyprofile;//把配置文件分配給用戶
(4)口令歷史
如果希望用戶在修改密碼的時候不能使用以前的密碼,可使用口令歷史,這樣oracle就會將口令修改的信息存放到
數據字典中,這樣當用戶修改密碼時,oracle就會新舊密碼進行比較,如果發現一樣,就會提示用戶重新輸入密碼
1)建立profile
create profileprofile_history limit password_life_time
10 password_grace_time
2
password_reuse_time 10;
password_reuse_time是指 指定口令可以重用時間(即10天后就可以重用)
2)分配給某個用戶
alter userxiaoming profile myprofile;
(5)刪除profile
當不需要某個profile文件時,可以刪除該文件,
drop profile password_history [cascade];
————————————————————————————————————————————————
1、oracle的權限分爲兩種:系統權限(140多種)和對象權限(25多種)。
系統權限:是指用戶對數據庫的相關權限;比如說建庫、建表、建索引、建存儲過程、登錄數據庫、修改密碼;
對象權限:是指用戶對其他用戶的數據對象操作的權限。簡單的劃分有:select/insert/
/update/delete/all/create all......
2、數據對象:這個用戶創建的表、觸發器、視圖、存儲過程等數據庫對象。
數據庫中不只是有表,還有存儲過程、觸發器、視圖、函數、過程、包、類型、角色、表空間等。
3、角色:事先定義一些角色(比如connect,dba,resourse),當新建一個數據庫時,需要一些基本的授權,就是批量的將一些基本的基本權限給一個角色,就比如說一個人的職位是市長,就將一系列市長的權限給他。
角色分爲自定義角色和預定義角色。如果把dba賦給用戶,該用戶就成了數據管理員。
4、方案:
5、oracle中可以有兩張一樣名字的表,因爲oracle中是以用戶爲單位進行管理的,所以可以再不同用戶下有相同名字的表。
6、