oracle使用者許可權問題

2021-08-29 05:02:43 字數 3302 閱讀 7169

每個oracle使用者都有乙個名字和口令,並擁有一些由其建立的表、檢視和其他資源。

oracle角色(role)就是一組許可權(privilege)(或者是每個使用者根據其狀態和條件

所需的訪問型別)。使用者可以給角色授予或賦予指定的許可權,然後將角色賦給相應的用

戶。乙個使用者也可以直接給其他使用者授權。

資料庫系統許可權(database system privilege)允許使用者執行特定的命令集。例

如,create table許可權允許使用者建立表,grant any privilege 許可權允許使用者授予任

何系統許可權。

資料庫物件許可權(database object privilege)使得使用者能夠對各個物件進行某

些操作。例如delete許可權允許使用者刪除表或檢視的行,select許可權允許使用者通過

select從表、檢視、序列(sequences)或快照 (snapshots)中查詢資訊。

一、建立使用者

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連同與之相關的許可權將從資料庫中全部刪除。

授予許可權:

grant connect, resource to 使用者名稱;

grant select on 表名 to 使用者名稱;

grant select, insert, delete on表名 to 使用者名稱1, 使用者名稱2;

**許可權

revoke connect, resource from 使用者名稱;

revoke select on 表名 from 使用者名稱;

revoke select, insert, delete on表名 from 使用者名稱1, 使用者名稱2;

oracle 新增使用者與許可權問題

alter session 修改會話 create cluster 建立聚簇 create database link 建立資料庫鏈結 create sequence 建立序列 create session 建立會話 create synonym 建立同義詞 create view 建立檢視 res...

Oracle 使用者許可權

sys 系統管理員,擁有最高許可權 system 本地管理員,次高許可權 scott 普通使用者,密碼預設為tiger,預設未解鎖 sys 系統管理員,擁有最高許可權 system 本地管理員,次高許可權 scott 普通使用者,密碼預設為tiger,預設未解鎖 二 登陸 sqlplus as sy...

Oracle使用者許可權

系統許可權 1 使用grant語句向使用者賦予系統許可權 grant system privilege to user name with admin option 注 使用with admin option語句後,使使用者可以將相同許可權賦給其他使用者。2 使用revoke語句撤銷系統許可權 re...