Oracle 資料庫使用者管理

2021-06-12 02:48:39 字數 4698 閱讀 7539

oracle 許可權設定

一、許可權分類:

系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。

實體許可權:某種許可權使用者對其它使用者的表或檢視的訪問許可權。(是針對表或檢視而言的)。

二、系統許可權管理:

1、系統許可權分類:

dba: 擁有全部特權,是系統最高許可權,只有dba才可以建立資料庫結構。

resource:擁有resource許可權的使用者只可以建立實體,不可以建立資料庫結構。

connect:擁有connect許可權的使用者只可以登入oracle,不可以建立實體,不可以建立資料庫結構。

對於普通使用者:授予connect, resource許可權。

對於dba管理使用者:授予connect,resource, dba許可權。

2、系統許可權授權命令:

[系統許可權只能由dba使用者授出:sys, system(最開始只能是這兩個使用者)]

授權命令:sql> grant connect, resource, dba to 使用者名稱1 [,使用者名稱2]...;

[普通使用者通過授權可以具有與system相同的使用者許可權,但永遠不能達到與sys使用者相同的許可權,system使用者的許可權也可以被**。]

例:sql> connect system/manager

sql> create user user50 identified by user50;

sql> grant connect, resource to user50;

查詢使用者擁有**許可權:

sql> select * from dba_role_privs;

sql> select * from dba_sys_privs;

sql> select * from role_sys_privs;

刪除使用者:sql> drop user 使用者名稱 cascade;  //加上cascade則將使用者連同其建立的東西全部刪除

3、系統許可權傳遞:

增加with admin option選項,則得到的許可權可以傳遞。

sql> grant connect, resorce to user50 with admin option;  //可以傳遞所獲許可權。

4、系統許可權**:系統許可權只能由dba使用者**

命令:sql> revoke connect, resource from user50;

系統許可權無級聯,即a授予b許可權,b授予c許可權,如果a收回b的許可權,c的許可權不受影響;系統許可權可以跨使用者**,即a可以直接收回c使用者的許可權。

三、實體許可權管理

1、實體許可權分類:select, update, insert, alter, index, delete, all  //all包括所有許可權

execute  //執行儲存過程許可權

user01:

sql> grant select, update, insert on product to user02;

sql> grant all on product to user02;

user02:

sql> select * from user01.product;

// 此時user02查user_tables,不包括user01.product這個表,但如果查all_tables則可以查到,因為他可以訪問。

3. 將表的操作許可權授予全體使用者:

sql> grant all on product to public;  // public表示是所有的使用者,這裡的all許可權不包括drop。

[實體許可權資料字典]:

sql> select owner, table_name from all_tables; // 使用者可以查詢的表

sql> select table_name from user_tables;  // 使用者建立的表

sql> select grantor, table_schema, table_name, privilege from all_tab_privs; // 獲權可以訪問的表(被授權的)

sql> select grantee, owner, table_name, privilege from user_tab_privs;   // 授出許可權的表(授出的許可權)

4. dba使用者可以操作全體使用者的任意基表(無需授權,包括刪除):

dba使用者:

sql> create table stud02.product(

id number(10),

name varchar2(20));

sql> drop table stud02.emp;

sql> create table stud02.employee

asselect * from scott.emp;

5. 實體許可權傳遞(with grant option):

user01:

sql> grant select, update on product to user02 with grant option; // user02得到許可權,並可以傳遞。

6. 實體許可權**:

user01:

sql>revoke select, update on product from user02;  //傳遞的許可權將全部丟失。

一、建立使用者的profile檔案

sql> create profile student limit  // student為資源檔名

failed_login_attempts  3  //指定鎖定使用者的登入失敗次數

password_lock_time 5  //指定使用者被鎖定天數

password_life_time 30  //指定口令可用天數

二、建立使用者

sql> create user username

identified by password

default tablespace tablespace

temporary tablespace tablespace

profile profile

quota integer/unlimited on tablespace;

例:sql> create user acc01

identified by acc01   // 如果密碼是數字,請用雙引號括起來

default tablespace account

temporary tablespace temp

profile default

quota 50m on account;

sql> grant connect, resource to acc01;

[*] 查詢使用者預設表空間、臨時表空間

sql> select username, default_tablespace, temporary_tablespace from dba_users;

[*] 查詢系統資源檔名:

sql> select * from dba_profiles;

資源檔案類似表,一旦建立就會儲存在資料庫中。

sql> select username, profile, default_tablespace, temporary_tablespace from dba_users;

sql> create profile common limit

failed_login_attempts 5

idle_time 5;

sql> alter user acc01 profile common;

三、修改使用者:

sql> alter user 使用者名稱

identified 口令

default tablespace tablespace

temporary tablespace tablespace

profile profile

quota integer/unlimited on tablespace;

1、修改口令字:

sql>alter user acc01 identified by "12345";

2、修改使用者預設表空間:

sql> alter user acc01 default tablespace users;

3、修改使用者臨時表空間

sql> alter user acc01 temporary tablespace temp_data;

4、強制使用者修改口令字:

sql> alter user acc01 password expire;

5、將使用者加鎖

sql> alter user acc01 account lock;  // 加鎖

sql> alter user acc01 account unlock;  // 解鎖

四、刪除使用者

sql>drop user 使用者名稱;  //使用者沒有建任何實體

sql> drop user 使用者名稱 cascade;  // 將使用者及其所建實體全部刪除

*1. 當前正連線的使用者不得刪除。

五、監視使用者:

1、查詢使用者會話資訊:

sql> select username, sid, serial#, machine from v$session;

2、刪除使用者會話資訊:

sql> alter system kill session 'sid, serial#';

3、查詢使用者sql語句:

sql> select user_name, sql_text from v$open_cursor;

oracle資料庫使用者管理

執行 cmd 按如下輸入命令 sqlplus as sysdba 以sys登陸 超級使用者 sysdba alter user 使用者名稱 account unlock 解除鎖定 必須帶 號 alter user 使用者名稱 identified 密碼 修改密碼 然後用你改好的密碼登陸就行 如果可以...

Oracle資料庫的使用者管理

oracle安裝會自動的生成sys使用者和system使用者 1 sys使用者是超級使用者,具有最高許可權,具有sysdba角色,有create database的許可權。該使用者預設的密碼是manager 2 system使用者是管理操作員,許可權也很大,具有sysoper角色,沒有create ...

ORACLE資料庫管理 pdb使用者 許可權管理

1 common users普通使用者 使用者名稱以c 或c 開頭 僅建立在cdb層 建立在pdb層會報錯ora 65094 invalid local user or role name create user c test identified by test container all gra...