oracle用戶管理


oracle用戶管理

創建用戶(簡單版)

概述:在oracle中要創建一個新的用戶使用create user語句,一般是具有dab(數據庫管理員)的權限才能使用。

基本語法:create user 用戶名 identified by 密碼;

注意:oracle規定用戶密碼不能以數字開頭

 

給用戶修改密碼

概述:如果給自己修改密碼可以直接使用sql>password 用戶名

如果給別人修改密碼則需要具有dba的權限,或是擁有alter user的系統權限,也可以使用password用戶名

sql>password 用戶名;

sql>alter user 用戶名 identified by 新密碼;

 

特別說明:oracle已對oracle操作中出現的錯誤進行了編號,以后遇到錯誤將記錄編號進行網上查詢解決方案。

 

oracle用戶管理

創建用戶(細節)

例子:

sql>create user dd identified by dd

default tablespace users

temporary tablespace temp

quota 3m on users;

identified by表明用戶shunping將用數據庫方式驗證default tablespace users//用戶的表空間在users上

temporary tablespace temp//用戶shunping的臨時表建在temp空間

quota 3m on users//表明用戶shunping建立的數據對象(表、索引、視圖、pl/sql塊)最大只能是3m

剛剛創建的用戶是沒有任何權限的,因此,需要dba給該用戶授權

sql>grant connect to shunping

如果你希望該用戶建表沒有空間的限制

sql>grant resource to shunping

如果你希望該用戶成為dba

sql>grant dba to shunping

 

表空間(oracle有的概念)

什么是表空間?表存在的空間,一個表空間是指向具體的數據文件。

 

 

 

為什么創建好的用戶無法正常登錄?

oracle中用戶建立后是無法正常登錄的,只有在數據庫管理員(DBA)對用戶分配相應的權限后,用戶才可以登錄。

 

如何給用戶分配權限?

基本語法:grant create 權限 to 用戶名;

案例:sql>grant create session to xiaoming;

可以按角色對用戶分配權限

基本語法:grant 色名 to 用戶名;

案例sql>grant dba to xiaoming;

 

oracle管理用戶的機制(原理)

oracle中權限的概念

權限分為系統權限與對象權限。

 

系統權限是數據庫管理相關的權限:

create session(登錄權限)

create table(創建表權限)

create index(創建索引權限)

create view(創建視圖權限)

create sequence(創建序列權限)

create trriger(創建觸發器權限)

......

 

對象權限是和用戶操作數據對象相關的權限。

update

insert

delete

select

 

角色分為預定義角色和自定義角色

 

預定義角色:把常用的權限集中起來,形成角色。

常見的角色有:DBA、connect、resource

 

自定義角色按需定制一定權限形成角色,可以作為預定義角色的補充。來滿足用戶的需求。

 

 

 

 

oracle用戶管理

用戶管理的綜合案例

概述:創建的新用戶是沒有任何權限的,甚至連登錄的數據庫的權限都沒有,需要為其指定相應的權限。給一個用戶賦權限使用使令grant,回收權限使用命令revoke

權限基本語法:grant 權限/角色 to 用戶名;

收權限基本語法:revoke 權限/角色 from 戶名;

 

oracle用戶管理

刪除用戶

概述:一般以dba的身份去刪除某個用戶,如果用其它用戶去刪除用戶則需要具有drop user的權限

基本語法:drop user 用戶名 [cascade];

 

為了講清楚用戶的管理,這里舉例說明:

1、創建xiaoming,並賦予connect和resource

創建用戶基本語法create user 戶名 identified by 密碼;

sql>create user xiaoming identified by m123;

給用戶授權基本語法grant 權限/角 to 戶名;

sql>grant connect to xiaoming;

sql>grant resource to xiaoming;

2、切換用戶

切換用戶基本語法:connect 戶名/密碼;

sql>conn xiaoming/m123;

3、xiaoming修改密碼

改密碼基語法:password 戶名;

sql>password xiaoming;

管理員修改密碼基本語法:alter user 戶名 identified by 密碼;

sql>alter user xiaoming identified by xiaoming123;(sys或system用戶修改其它用戶的方法)

4、使用xiaoming建表

建表基本語法:create table (字段屬性);

sql>create table users(id number);

5、添加數據

添加數據基本語法:insert into  values();

sql>insert into users values(1);

6、查詢數據

查詢表內容基本語法:select * from ;

sql>select * from users;

7、刪除表

刪除表基本語法:drop table ;

sql>drop table users;

8、回收權限(需sys或system用戶)

回收權限基本語法:revoke 權限/角色名 from 戶名;

sql>revoke connect from xiaoming;

sql>revoke resource from xiaoming;

9、刪除用戶

刪除用戶基本語法:drop user 戶名 [cascade];

我們刪除一個用戶的時候,如果這個用戶自己已經創建過數對象那么我們在刪除該用戶時,需要[cascade],表示把這個用戶刪除的同時,把該用戶創建的數據對象一並刪除。

sql>drop user xiaoming;

 

方案(schema)

理解當一個用戶,創建好以后,如果該用戶創建了任意一個數據對象,此時,我們的dbms就會創建一個對應的方案與該用戶對應。方案名與用戶名完全一樣。

 

 

小技巧:如果希望看到某個用戶的方案究竟有什么數據對象,我們可以使用pl/sql developer

 

方案這個概念的實際應用:

要求:請完成一個功能,讓xiaohong用戶可以去查詢scott的emp表

步驟:

1、先用scott登錄

sql>conn scott/tiger;

2、賦權限給xiaohong

給某用戶添加表[增刪改查]權限基本語法:grant [select|update|delete|insert|all] on 表名 to 用戶名;

sql>grant select on emp to xiaohong;

3、xiaohong查詢scott的emp

用戶查詢授權表的基本語法:select * from [方案名].表名;

注意:方案名不帶的話,默認是查詢自己方案中的表。

sql>select * from scott.emp;

 

練習題:

用戶創建練習:

1、創建用戶tea,stu,並給這兩個用戶resource,connect角色

sql>conn system/orcl;//使用system用戶創建tea和stu用戶

sql>create user tea identified by tea;//創建tea用戶

sql>create user stu identified by stu;//創建stu用戶

sql>grant resource to tea;//對tea用戶授權resource權限

sql>grant connect to tea;//對tea用戶授權connect權限

sql>grant resource to stu;//對stu用戶授權resource權限

sql>grant connect to stu;//對stu用戶授權connect權限

 

2、使用scott用戶把對emp表的select權限給tea

sql>conn scott/tiger;//切換scott用戶操作

sql>grant select on emp to tea;//將scott的emp查詢權限交給tea

 

使用tea查詢scott的emp表

sql>conn tea/tea;

sql>select * from scott.emp;//查詢scott的emp表

 

使用scott用戶把emp表的所有權限賦給tea

sql>conn scott/tiger;

sql>grant all on emp to tea;//將scott的emp操作的全部權限交給了tea

 

使用tea更新/刪除/插入scott的emp表

sql>conn tea/tea;

sql>update scott.emp set job='Teacher' where job='&job';

sql>delete from scott.emp where job='&job';

sql>insert into scott.emp values(8888,'FORD','Teacher',7698,'08-9月-81',1500,300,20);

 

使用scott收回權限

sql>conn scott/tiger;

sql>revoke all on emp from tea;

 

3、想辦法將讓tea把自己擁有的對scott.emp的權限轉給stu;

sql>conn scott/tiger;

sql>grant all on emp to tea with grant option;

//with grant option表示得到權限的用戶,可以把權限繼續分配

//with admin option如果是系統權限,則帶with admin option

sql>conn tea/tea;

sql>grant all on scott.emp to stu;

 

使用stu查詢scott用戶的emp表

sql>conn stu/stu;

sql>select * from scott.emp;

 

使用tea收回給stu的權限

sql>conn tea/tea;

sql>revoke all on scott.emp from stu;

 

系統權限with admin option

對象權限with grant option

 

 

oralce用戶管理

使用profile管理用戶口令

概述:profile是口令限制,資源限制的命令集合,當建立數據時,oracle會自動建立名稱為default的profile,當建立用戶沒有指定profile選項,那oracle就會將default分配給用戶。

1、帳戶鎖定

概述:指定該帳戶(用戶)登錄時最多可以輸入密碼的次數,也可以指定用戶鎖定的時間(天)一般用dba的身份去執行該命令

例:指定scott這個用戶最多只能嘗試3次登錄,鎖定時間為2天,讓我們看看怎么實現?

創建profile文件

創建profile文件設定嘗試密碼輸入幾次在錯誤后鎖定幾天基本語法:

create profile profile文件名 limit failed_login_attempts 嘗試輸入次數 password_lock_time 鎖定幾天;

alter user 戶名 profile profile文件;

sql>create profile lock_account limit failed_login_attempts 3 password_lock_time 2;

sql>alter user tea profile lock_account;

 

2、給帳戶(用戶)解鎖

解鎖基本語法:alter user 用戶名 account unlock;

sql>alter user tea account unlock;

 

3、終止口令

為了讓用戶定期修改密碼可以使用終止口令的指令來完成,同樣這個命令也需要dba身份來操作。

例如:給前面創建的用戶tea創建一個profile文件,要求該用戶每隔10天要修改自己的登錄密碼,寬限期為2天。

創建profile文件設置每隔幾天要對用戶的密碼進行修改,更改密碼時間在幾天內基本語法:create profile profile文件名 limit password_life_time 幾天后修改密碼 password_grace_time 寬限期幾天;

alter user 用戶名 profile profile文件名;

sql>create profile myprofile limit password_life_time 10 password_grace_time 2;

sql>alter user tea profile myprofile;

 

4、口令歷史

概述:如果希望用戶在修改密碼時,不能使用以前使用過的密碼,可使用口令歷史,這樣oracle就會將口令修改的信息存放在數據字典中,這樣當用戶修改密碼時,oralce就會對新舊密碼進行比較,當發現新舊密碼一樣時,就提示用戶重新輸入密碼。

例:

1、建立profile

sql>create profile profile名稱 limit password_life_time 10 password_grace_time 2 password_reuse_time 10

password_reuse_time 2// //限制口令在多少天內不能重復使用(換言之就是多少天內不允許使用以前使用過的密碼)

2、分配給某個用戶

sql>alter user 用戶名 profile profile名稱;

 

5、刪除profile

概述:當不需要某個profile文件時,可以刪除文件

刪除profile基本語法:drop profile profile文件 [cascade];

sql>drop profile profile文件名;

注意:profile文件被刪除后,原profile文件指定的用戶將不再受原profile文件規則限定。當profile文件指定了用戶,要加上 cascade.

 

oracle數據庫的啟動/關閉流程

oracle也可以通過命令行的方式啟動,具體如何操作:

oracle啟動流程--windows下

1、lsnrctl start(啟動監聽)

2、oradim -startup -sid 數據庫實例名

oracle關閉流程--windows下

1、lsnrctl stop

2、oradim -shutdown -sid 數據庫實例名 -shuttype srvc,inst

 

oracle啟動流程--linux下

1、lsnrctl start(啟動監聽)

2、sqlplus sys/change_on_install as sysdba(以sysdba身份登錄,在oracle10g后可以這樣寫)

sqlplus /nolog

conn sys/change_on_install as sysdba

3、startup

 

oracle關閉流程--linux下

sqlplus/nolog

conn sys/change_on_install as sysdba

shutdown

注:shutdown關閉,等待每個用戶退出系統或被取消后退出關閉數據庫。

shutdown transactional:事務性關閉,等待每個用戶提交或回退當前的事務,然后oracle取消對話,在所有用戶退出系統后執行關閉。

shutdown immediate:直接關閉,取消所有用戶對話(促使回退),執行正常的關閉程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM