oracle用戶管理

oracle用戶管理linux

建立用戶(簡單版)sql

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

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

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

 

給用戶修改密碼oracle

概述:若是給本身修改密碼能夠直接使用sql>password 用戶名ide

若是給別人修改密碼則須要具備dba的權限,或是擁有alter user的系統權限,也可使用password用戶名spa

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];

 

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

一、建立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;

二、切換用戶

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

sql>conn xiaoming/m123;

三、xiaoming修改密碼

改密碼基語法:password 戶名;

sql>password xiaoming;

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

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

四、使用xiaoming建表

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

sql>create table users(id number);

五、添加數據

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

sql>insert into users values(1);

六、查詢數據

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

sql>select * from users;

七、刪除表

刪除表基本語法:drop table ;

sql>drop table users;

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

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

sql>revoke connect from xiaoming;

sql>revoke resource from xiaoming;

九、刪除用戶

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

咱們刪除一個用戶的時候,若是這個用戶本身已經建立過數對象那麼咱們在刪除該用戶時,須要[cascade],表示把這個用戶刪除的同時,把該用戶建立的數據對象一併刪除。

sql>drop user xiaoming;

 

方案(schema)

理解當一個用戶,建立好之後,若是該用戶建立了任意一個數據對象,此時,咱們的dbms就會建立一個對應的方案與該用戶對應。方案名與用戶名徹底同樣。

 

 

小技巧:若是但願看到某個用戶的方案究竟有什麼數據對象,咱們可使用pl/sql developer

 

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

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

步驟:

一、先用scott登陸

sql>conn scott/tiger;

二、賦權限給xiaohong

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

sql>grant select on emp to xiaohong;

三、xiaohong查詢scott的emp

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

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

sql>select * from scott.emp;

 

練習題:

用戶建立練習:

一、建立用戶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權限

 

二、使用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;

 

三、想辦法將讓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分配給用戶。

一、賬戶鎖定

概述:指定該賬戶(用戶)登陸時最多能夠輸入密碼的次數,也能夠指定用戶鎖定的時間(天)通常用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;

 

二、給賬戶(用戶)解鎖

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

sql>alter user tea account unlock;

 

三、終止口令

爲了讓用戶按期修改密碼可使用終止口令的指令來完成,一樣這個命令也須要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;

 

四、口令歷史

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

例:

一、創建profile

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

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

二、分配給某個用戶

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

 

五、刪除profile

概述:當不須要某個profile文件時,能夠刪除文件

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

sql>drop profile profile文件名;

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

 

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

oracle也能夠經過命令行的方式啓動,具體如何操做:

oracle啓動流程--windows下

一、lsnrctl start(啓動監聽)

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

oracle關閉流程--windows下

一、lsnrctl stop

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

 

oracle啓動流程--linux下

一、lsnrctl start(啓動監聽)

二、sqlplus sys/change_on_install as sysdba(以sysdba身份登陸,在oracle10g後能夠這樣寫)

sqlplus /nolog

conn sys/change_on_install as sysdba

三、startup

 

oracle關閉流程--linux下

sqlplus/nolog

conn sys/change_on_install as sysdba

shutdown

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

shutdown transactional:事務性關閉,等待每一個用戶提交或回退當前的事務,而後oracle取消對話,在全部用戶退出系統後執行關閉。

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

相關文章
相關標籤/搜索