1. 程式人生 > >Oracle 用戶管理

Oracle 用戶管理

es2017 unlock from 訪問權限 改密碼 sqlplus 功能 pan 上一個

在 Oracle 中可以對用戶進行建立及授權的操作。

  • 創建用戶的語法:
CREATE USER 用戶名 IDENTIFIED BY 密碼 ;

範例:創建一個 test 用戶,密碼是 test123

CREATE USER test IDENTIFIED BY test123 ;

如果要想創建用戶,則首先應該使用管理員進行登陸,創建用戶之後,開啟一個新的 sqlplusw 窗口,並使用此用戶進行登陸,出現以下的錯誤提示:

技術分享

提示 test 用戶沒有創建 session 的操作權限,沒有 session 的權限就意味著無法登陸。

  • 為用戶授權可以使用如下的格式:
GRANT 權限 1
,權限 2,... TO 用戶

範例:將創建 SESSION 的權限給 test 用戶

GRANT CREATE SESSION TO test ;

再使用 test 用戶進行連接,就可以連接上數據庫,就表示創建了一個 SESSION。

範例:建立 tab 表

CREATE TABLE tab(
id  NUMBER PRIMARY KEY NOT NULL ,
name VARCHAR2(30)
) ;

技術分享

實際上一個新的用戶所有的權限都要分別賦予,如果現在假設要想把多個權限一次性賦予一個用戶,可以將這些權限定義成一組角色。

  • 在 Oracle 中提供了兩個主要角色:CONNECT、RESOURCE,可以直接把這兩個角色賦予 test 用戶
GRANT CONNECT,RESOURCE TO test ;
  • 修改一個用戶的密碼,格式如下:
ALTER USER 用戶名 IDENTIFIYED BY 密碼
  • 在一般的系統中存在,在用戶第一次登陸的時候可以修改密碼,所以要想完成此功能,可以手工讓一個密碼失效,格式如下:
ALTER USER 用戶名 PASSWORD EXPIRE ;
  • 鎖定用戶:
ALTER USER 用戶名 ACCOUNT LOCK ;
  • 解鎖用戶:
ALTER USER 用戶名 ACCOUNT UNLOCK ;

要訪問其他用戶的表,需要授予此張表的訪問權限。

範例:將 scott 用戶下的 emp 表的查詢及刪除權限給 test 用戶

GRANT SELECT,DELETE ON scott.emp TO test ;

  回收權限使用 REVOKE 語法

REVOKE 權限 ON 用戶.表名稱 FROM 用戶 ;

範例:回收 test 用戶的 SELECT 及 DELETE 權限

REVOKE SELECT,DELETE ON scott.emp FROM test ; 

Oracle 用戶管理