orcale使用者名稱的建立及許可權設定

2022-02-14 08:56:15 字數 4407 閱讀 6396

oracle資料庫的許可權系統分為系統許可權與物件許可權。系統許可權( database system privilege )可以讓使用者執行特定的命令集。例如,create table許可權允許使用者建立表,grant any privilege 許可權允許使用者授予任何系統許可權。物件許可權( database object privilege )可以讓使用者能夠對各個物件進行某些操作。例如delete許可權允許使用者刪除表或檢視的行,select許可權允許使用者通過select從表、檢視、序列(sequences)或快照(snapshots)中查詢資訊。 

每個oracle使用者都有乙個名字和口令,並擁有一些由其建立的表、檢視和其他資源。oracle角色(role)就是一組許可權(privilege)(或者是每個使用者根據其狀態和條件所需的訪問型別)。使用者可以給角色授予或賦予指定的許可權,然後將角色賦給相應的使用者。乙個使用者也可以直接給其他使用者授權。 

一、建立使用者

oracle建立使用者的語法: 

oracle建立使用者(密碼驗證使用者),可以採用create user命令。 

create user username identified by password 

or identified exeternally 

or identified globally as 『cn=user' 

[default tablespace tablespace] 

[temporary tablespace temptablespace] 

[quota [integer k[m] ] [unlimited] ] on tablespace 

[,quota [integer k[m] ] [unlimited] ] on tablespace 

[profiles profile_name] 

[password expire] 

[account lock or account unlock] 

其中, 

create user username:使用者名稱,一般為字母數字型和「#」及「_」符號。 

identified by password:使用者口令,一般為字母數字型和「#」及「_」符號。 

identified exeternally:表示使用者名稱在作業系統下驗證,該使用者名稱必須與作業系統中所定義的使用者名稱相同。 

identified globally as 『cn=user':使用者名稱由oracle安全域中心伺服器驗證,cn名字表示使用者的外部名。

[default tablespace tablespace]:預設的表空間。 

[temporary tablespace tablespace]:預設的臨時表空間。 

[quota [integer k[m] ] [unlimited] ] on tablespace:使用者可以使用的表空間的位元組數。 

[profiles profile_name]:資源檔案的名稱。 

[password expire]:立即將口令設成過期狀態,使用者再登入前必須修改口令。 

[account lock or account unlock]:使用者是否被加鎖,預設情況下是不加鎖的。 

oracle內部有兩個建好的使用者:system和sys。使用者可直接登入到system使用者以建立其他使用者,因為system具有建立別 的使用者的 許可權。 在安裝oracle時,使用者或系統管理員首先可以為自己建立乙個使用者。例 如 : 

複製****如下:

create user user01 identified by u01; 

該命令還可以用來設定其他許可權,詳細情況參見自學資料。要改變乙個口令,可以使用alter user命令:

複製****如下:

alter user user01 identified by usr01; 

現在user01的口令已由「u01」改為「usr01」。 

除了alter user命令以外,使用者還可以使用password命令。如果使用password命令,使用者輸入的新口令將不在螢幕上顯示。有dba特權的使用者可以通過password命令改變任何其他使用者的口令;其他使用者只能改變自己的口令。 

當使用者輸入password命令時,系統將提示使用者輸入舊口令和新口令,如下所示: 

password 

changing password for user01 

old password: 

new password: 

retype new password: 

當成功地修改了口令時,使用者會得到如下的反饋: 

password changed 

二 、刪除使用者 

刪除使用者,可以使用drop user命令,如下所示: 

複製****如下:

drop user user01; 

如果使用者擁有物件,則不能直接刪除,否則將返回乙個錯誤值。指定關鍵字cascade,可刪除使用者所有的物件,然後再刪除使用者。下面的例子用來刪除使用者與其物件: 

複製****如下:

drop user user01 cascade; 

三 、3種標準角色

qracle為了相容以前的版本,提供了三種標準的角色(role):connect、resource和dba。 

1. connect role(連線角色) 

臨時使用者,特別是那些不需要建表的使用者,通常只賦予他們connectrole。connect是使用oracle的簡單許可權,這種許可權只有在對其他使用者的表有訪問權時,包括select、insert、update和delete等,才會變得有意義。擁有connect role的使用者還能夠建立表、檢視、序列(sequence)、簇(cluster)、同義詞(synonym )、會話(session)和與其他資料庫的鏈(link)。 

2. resource role(資源角色) 

更可靠和正式的資料庫使用者可以授予resource role。resource提供給使用者另外的許可權以建立他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。 

3. dba role(資料庫管理員角色) 

dba role擁有所有的系統許可權----包括無限制的空間限額和給其他使用者授予各種許可權的能力。system由dba使用者擁有。下面介紹一些dba經常使用的典型許可權。 

(1)grant(授權)命令 

下面對剛才建立的使用者user01授權,命令如下: 

grant connect, resource to user01; 

(2)revoke(撤消)許可權 

已授予的許可權可以撤消。例如撤消(1)中的授權,命令如下: 

複製****如下:

revoke connect, resource from user01; 

乙個具有dba角色的使用者可以撤消任何別的使用者甚至別的dba的connect、resource 和dba的其他許可權。當然,這樣是很危險的,因此,除非真正需要,dba許可權不應隨便授予那些不是很重要的一般使用者。 撤消乙個使用者的所有許可權,並不意味著從oracle中刪除了這個使用者, 也不會破壞使用者建立的任何表;只是簡單禁止其對這些表的訪問。其他要訪問這些表的使用者可以象以前那樣地訪問這些表。 

四、建立角色

除了前面講到的三種系統角色----connect、resource和dba,使用者還可以在oracle建立自己的role。使用者建立的role可以由表或系統許可權或兩者的組合構成。為了建立role,使用者必須具有create role系統許可權。下面給出乙個create role命令的例項: 

複製****如下:

create role student; 

這條命令建立了乙個名為student的role。 

一旦建立了乙個role,使用者就可以給他授權。給role授權的grant命令的語法與對對使用者的語法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示: 

複製****如下:

grant select on class to student; 

現在,擁有student 角色的所有使用者都具有對class 表的select許可權。 

五、刪除角色

要刪除角色,可以使用drop role命令,如下所示: 

複製****如下:

drop role student; 

指定的role連同與之相關的許可權將從資料庫中全部刪除。 

六、刪除表的注意事項

在刪除乙個表中的全部資料時,須使用 

sql** 

複製****如下:

truncate table 表名

因為用drop table,delete * from 表名時,tablespace表空間該錶的占用空間並未釋放,反覆幾次drop,delete操作後,該tablespace上百兆的空間就被耗光了。 

作者「技術總結」

sqlserver 使用者名稱建立 及許可權配置

原文 開啟sql server2008,以windows身份驗證模式登陸 其他版本同理 在 物件資源管理器 中展開 安全性 右擊 登入名 在彈出的選單中點選 新建登入名 此處注意 1 在登入名右側的文字框中輸入新建的管理員賬號名稱 2 一對單選按鈕組中,選擇sql server 身份驗證,並輸入登入...

Oracle的建立使用者名稱

1 linux 下oracle 的啟動以oracle 身份登入 啟動lsnrctl start 登入sqplus nolog 連線資料庫connect as sysdba 啟動資料庫startup 關閉資料庫shutdown immediate 2 在資料中建立使用者名稱 啟動資料庫後建立使用者名稱...

linux建立使用者,使用者名稱 使用者組

sudo mkdir home testuseradd d home test m username passwd username 針對顯示為 的終端 進入root終端 找的etc passwd修改最後的 usr username bin sh usr lpl bin bash賦予 在test檔案...