資料庫角色 使用者 授權總結(詳細)

2021-10-24 04:00:24 字數 4960 閱讀 1554

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

一、建立使用者

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

模板是:create user 使用者名稱 identified by 密碼

比如:

create

user test identified by

1q2w3e;

(上面 test 是建立的使用者, 1q2w3e 是密碼)

該命令還可以用來設定其他許可權。要改變乙個口令,可以使用alter user命令:

alter

user test identified by usr01;

現在 test 的口令已由「1q2w3e」改為「usr01」。

二、刪除使用者

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

drop

user test;

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

drop

user test cascade

;

三、檢視使用者狀態

當前oracle使用者的狀態可檢視檢視dba_users;一般情況下在使用的正常使用者均處於open狀態。

select username,account_status from dba_users;
使用者狀態一共有九種狀態,可分為兩類:1.基本狀態;2.組合狀態。

後四種的組合狀態可通過狀態號status#獲得其狀態的兩個組合。鎖定的兩種狀態locked、locked(timed)和密碼過期的兩種狀態expired、expired(grace)之間任意組合即2×2=4,因此有四種組合狀態。

五種基本狀態可分為三類:正常狀態、鎖定狀態、密碼過期狀態。其中

open狀態表示使用者處於正常狀態;

locked和locked(timed)表示使用者被鎖定狀態

使用者被鎖定有兩種:

alter

user

[username] account lock

expired、expired(grace)表示使用者密碼過期狀態

修改profile中的password_life_time實現密碼是否過期:

alter profile default

limit password_life_time unlimited;

密碼過期後也可修改profile中的password_grace_time控制使用的天數:

alter profile default

limit password_grece_time 180

;

對於密碼過期的使用者open:

alter

user

[username] identified by account unlock

;

一、3種標準角色

角色是一組相關許可權的命名集合,使用角色最主要的目的是簡化許可權管理。

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

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

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

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

dba role(資料庫管理員角色):dba role擁有所有的系統許可權----包括無限制的空間限額和給其他使用者授予各種許可權的能力。system由dba使用者擁有。

下面介紹一些dba經常使用的典型許可權。

grant(授權)命令

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

grant

connect

, resource to test;

具體的有:

grant

create

session

to epm_spark;

賦予 create session 的許可權,這樣 epm_spark 使用者就能成功登陸資料庫

grant

create

table

to epm_spark;

賦予 create table 的許可權,這樣 epm_spark 使用者就能在資料庫建立表

grant unlimited tablespace

to epm_spark;

賦予 unlimited tablespace 的許可權,這樣 epm_spark 使用者就有使用表空間的許可權。

賦予了使用者上述幾個許可權,使用者就擁有了建立表的許可權,由於表是使用者 epm_spark 的,相應的他就擁有了對建立的表的增刪查改的許可權了

grant

connect

to epm_spark;

grant resource to epm_spark;
賦予 resource 的許可權,授予開發人員的,這樣 epm_spark 使用者就可以建表、建立聚簇、建立過程、建立序列等

revoke(撤消)許可權

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

revoke

connect

, resource from test;

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

1.檢視所有使用者:

select

*from dba_users;

select

*from all_users;

select

*from user_users;

2.檢視使用者或角色系統許可權:

select

*from dba_sys_privs;

select

*from user_sys_privs;

3.檢視使用者物件許可權:

select

*from dba_tab_privs;

select

*from all_tab_privs;

select

*from user_tab_privs;

4.檢視所有角色:

select

*from dba_roles;

5.檢視使用者或角色所擁有的角色:

select

*from dba_role_privs;

select

*from user_role_privs;

建立新使用者,grant授權,角色,建表

oracle資料庫檢視使用者狀態

SQLServer 給資料庫使用者授權與角色管理

1 授權 查,增,改的方法 go 分配許可權 發現可以對查 增 改操作,但是不能執行刪除操作。go 許可權 revoke select,insert,update on students to sharkuser01 再次檢視資料管理器時 已經沒有授權 如果資料庫有幾十張表,要是新增賬戶,並且授權不...

給資料庫使用者授權

給資料庫使用者授權 必須要管理員dba給資料庫使用者授權 通常許可權有 插入 insert 刪除 delete 更新 update 檢視 select 建立表 create table 例子 給加入的兩個資料庫使用者增加許可權 use studb go 給予zhangsandnuser對於stuin...

使用者 角色 許可權資料庫設計

分類 linux 許可權管理 許可權管理,主要是人員和許可權之間的關係,但是如果讓人員直接和許可權打交道,那麼許可權的賦值 許可權的撤銷以及許可權的變動會非常的麻煩,這樣引入了,角色,給角色賦許可權,然後給使用者分配角色。這個設計主要涉及6張表,使用者表,用於儲存使用者的所有資訊 許可權表,用於儲存...