程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 用戶的創建(學習筆記),用戶創建學習筆記

用戶的創建(學習筆記),用戶創建學習筆記

編輯:Oracle教程

用戶的創建(學習筆記),用戶創建學習筆記


  • 創建用戶:

語法:

CREATE USER 用戶名 IDENTIFIED BY 密碼
[DEFAULT TABLESPACE 表空間名稱]
[TEMPORARY TABLESPACE 臨時表空間表名]
[QUOTA 數字[K|M] UNLIMITED ON表空間名 
  QUOTA 數字[K|M] UNLIMITED ON表空間名 ...]
[PROFILE 概要文件名稱 | DEFAULT]
[PASSWORD EXPIRE]
[ACCOUNT LOCK | UNLOCK]

如下:

[]的部分可以省略
CREATE USER 用戶名 IDENTIFIED BY 密碼:
創建用戶同時設置密碼,但是用戶名和密碼不能是Oracle中保留字,也不能是數字開頭,如果要設置成數字需要將數字使用"聲明如''99977''
DEFAULT TABLESPACE 表空間名稱:用戶存儲默認使用的表空間,當用戶創建對象沒設置表空間時,就將保存在此處指定的表空間下,
TEMPORARY TABLESPACE 表空間名:用戶所使用的臨時表空間
QUOTA 數字[K|M] UNLIMITED ON表空間名:用戶在表空間上的使用限額,可以指定多個表空間的限額 ,如果設置為UNLIMITED,則表示不設置限額
PROFILE:概要文件名稱|DEFAULT:用戶操作的資源文件,如果不指定則使用默認的配置資源文件
PASSWORD EXPIRE:用戶密碼失效,則在第一次使用時,必須修改密碼
ACCOUNT LOCK |UNLOCK:用戶是否為鎖定狀態,默認為UNLOCK。

需要管理員來創建用戶

創建一個用戶:

CREATE USER te IDENTIFIED BY te      --創建用戶te密碼te
DEFAULT TABLESPACE tbs_test          --默認表空間tbs_test
TEMPORARY TABLESPACE temp;           --臨時表空間temp;

創建另一個用戶

CREATE USER oracletest              --創建用戶oracletest
IDENTIFIED BY oracletest            --密碼:oracletest
DEFAULT TABLESPACE tbs_test         --默認表空間:tbs_test  
TEMPORARY TABLESPACE temp           --臨時表空間 temp
QUOTA 8M ON tbs_test                 --在tbs_test表空間上最多使用8M
QUOTA 20M ON USERS                   --在users表空間上最多使用8M
ACCOUNT UNLOCK                       --用戶默認為活動賬戶,UNLOCK為活動,LOCK為鎖定  
PASSWORD EXPIRE;                     --用戶第一次登錄後要強制修改密碼

創建完用戶直接登錄會提示:

ORA-01045:user te或者oracletest lacks create session privilege;logon denied

提示用戶沒有連接數據庫的權限

分配權限有2種方式:

Oracle中預定義了一些角色:

 

 

NO

預定義角色

描述

1

EXP_FULL_DATABASE

導出數據庫權限

2

IMP_FULL_DATABASE

導入數據庫權限

3

SELECT_CATALOG_ROLE

查詢數據字典的權限

4

EXCUTE_CATALOG_ROLE

數據字典上的執行權限

5

DELETE_CATALOG_ROLE

數據字典上的刪除權限

6

DBA

系統管理員相關權限

7

CONNECT

授予用戶最典型的權限連接權限

8

RESOURCE

授予開發人員的權限

 

CONNECT角色權限;

CREATE SESSION

連接數據庫

 

RESOURCE角色權限

CREATE TRIGGER

創建觸發器

CREATE SEQUENCE

創建序列

CREATE TABLE

創建建立表

CLUSTER

創建簇

CREATE PROCEDURE

創建存儲過程

CREATE TYPE

創建類型

 

 

一般開發人員使用授予CONNECT 和RESOURCE角色

 

  • 為用戶授予角色:
GRANT CONNECT,RESOURCE TO te;
GRANT CONNECT,RESOURCE TO oracletest;

這裡使用創建的用戶就可以登錄並連接到數據庫了

  • 維護用戶:
ALTER USER 用戶名 IDENTIFIED BY 新密碼
ALTER USER oracletest IDENTIFIED BY test

    2.  控制用戶鎖定

 

ALTER USER 用戶名 ACCOUNT LOCK | UNLOCK

將oracletest設置為鎖定

ALTER USER  oracletest ACCOUNT LOCK

此時用oracle是不能登錄和連接數據庫的

 

將oracletest設置為解鎖

ALTER USER  oracletest ACCOUNT UNLOCK

   3. 讓密碼失效

ALTER 用戶名 PASSWORD EXPIRE

 將oracletest用戶密碼失效

ALTER oracletest PASSWORD EXPIRE

此時用oracletest用戶登錄時,會提示用戶修改密碼

4.修改表空間的配額

ALTER USER 用戶名 QUOTA 數字[K|M] UNLIMITED ON 表空間名稱

修改oracletest的表空間配額

ALTER USER oracle QUOTA UNLIMITED ON tbs_test

刪除用戶:

 

DROP USER 用戶名 [CASCADE]
CASCADE子句刪除模式中的所有對象

 

刪除oracletest用戶

DROP USER oracletest

授予角色:

 

GRANT 角色名,角色名,...  TO 用戶名

 

GRANT CONNECT,RESOURCE TO te;
GRANT CONNECT,RESOURCE TO oracletest;

回收角色:

 

REVOKE 角色名,角色名.. FROM 用戶名

 

REVOKE CONNECT,RESOURCE TO te;
REVOKE CONNECT,RESOURCE TO oracletest;

創建角色:

 

CREATE ROLE 角色名
[NOT IDENTIFIED |IDENTIFIED BY密碼]
NOT IDENTIFIED 沒有密碼
IDENTIFIED BY 密碼

 

創建一普通角色:

CREATE ROLE NOTEST;

查看DBA_ROLES字典查看角色是否創建成功和狀態

SELECT * FROM dba_roles WHERE ROLE='NOTEST';

角色授權:

GRANT CREATE SESSION ,CREATE TABLE TO NOTEST;
連接和創建表的權限授予角色

查詢role_sys_privs數據字典,狀態都有哪些權限


SELECT * FROM role_sys_privs
WHERE role='NOTEST'
ORDER BY ROLE;

找到我們的角色查看權限

禁用當前會話中的所有角色

SET ROLE NONE;

啟用當前會話中的所有角色

SET ROLE ALL;

刪除角色:

DROP ROLE 角色名;

刪除notest角色

DROP ROLE NOTEST;

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved