上文我們已經建立了名為orcl66的數據庫。
想要在數據庫中創建、修改用戶需要我們以管理員權限登錄到數據庫中。
首先我們通過sqlplus命令登錄連接數據庫。
輸入sqlplus命令--用戶名: sys as sysdba (回車)--口令:(任意字符都可以登錄)
登陸成功后就可以創建新用戶了。(我們是以sys用戶下DBA權限登入,可以根據需求對用戶名、密碼、權限等進行修改)
一、如何創建用戶
語法[創建用戶]: create user 用戶名 identified by 口令[即密碼];
大家注意看一下我下面犯的錯誤
1)create user bpmis_test identified by 123 無法執行(原因是沒有;)
2)create user bpmis_test identified by 123@;提示ORA-00922(原因是ORACLE數據庫中默認不予許有特殊字符如@、%、&、¥、#等字符)
有特殊字符的話,需要密碼用3個雙引號括起來,或者用一個雙引號括起來,然后用 \ 將雙引號進行轉義!!!
(比如:sqlplus sys/\"123@"@oracl66 as sysdba)
(正常密碼:sqlplus sys/123@oracl66 as sysdba)
創建用戶,修改用戶密碼。
語法[更改用戶]: 用戶名 identified by 口令[改變的口令];
alter user bpmis_test identified by test;
我們將上圖中密碼123改為了test。
二 解鎖用戶
語法[鎖定用戶]:alter user 用戶名 account lock[鎖定];
語法[解鎖用戶]:alter user 用戶名 account unlock[解鎖];
三、用戶授權
設置用戶權限
DBA:擁有全部特權,是系統最高權限,只有DBA才可以創建數據庫結構。
RESOURCE:擁有Resource權限的用戶只可以創建實體,不可以創建數據庫結構。
CONNECT:擁有Connect權限的用戶只可以登錄Oracle,不可以創建實體,不可以創建數據庫結構。
對於普通用戶:授予connect, resource權限。
對於DBA管理用戶:授予connect,resource, dba權限
1)授予權限:
語法:grant DBA[用戶權限] to 用戶名;
2)收回權限:
語法: revoke DBA[用戶權限] from 用戶名;
四、刪除用戶
語法:DROP USER 用戶名;
(執行該語句請小心,會級聯刪除該用戶下所有對象)
總結:一般情況下我們創建新用戶的操作流程。
1)使用管理員賬戶登錄連接數據庫:
cmd--sqlplus--用戶名:sys as sysdba--輸入口令:任意字符
登入連接
2)建立新的用戶,並設定密碼。
sql--create user bpmis_test identified by test;
3)解鎖新用戶(此步驟也可忽略,以防被鎖定)
sql--alter user bpmis_test account unlock;
4)給新建用戶授權。(此例為管理員用戶,分別授予三種權限)
sql--grant dba,connect,resource to bpmis_test;
知識拓展:
知識點及常用的命令如下:
1)通常情況我們稱的“數據庫”,並不僅指物理的數據集合,他包含物理數據、數據庫管理系統。也即物理數據、內存、操作系統進程的組合體。
查詢當前數據庫名:
select name from v$database;
2)“數據庫實例”其實就是用來訪問和使用數據庫的一塊進程,它只存在於內存中。就像Java中new出來的實例對象一樣。
我們訪問Oracle都是訪問一個實例,但這個實例如果關聯了數據庫文件,就是可以訪問的,如果沒有,就會得到實例不可用的錯誤。
實例名指的是用於響應某個數據庫操作的數據庫管理系統的名稱。她同時也叫SID。實例名是由參數instance_name決定的。
查詢當前數據庫實例名:
select instance_name from v$instance;
3)“表空間” Oracle數據庫是通過表空間來存儲物理表的,一個數據庫實例可以有N個表空間,一個表空間下可以有N張表。
有了數據庫,就可以創建表空間。
表空間(tablespace)是數據庫的邏輯划分,每個數據庫至少有一個表空間(稱作SYSTEM表空間)。為了便於管理和提高運行效率,可以使用一些附加表空間來划分用戶和應用程序。例如:USER表空間供一般用戶使用,RBS表空間供回滾段使用。一個表空間只能屬於一個數據庫。
創建表空間語法:
Create TableSpace 表空間名稱
DataFile 表空間數據文件路徑
Size 表空間初始大小
Autoextend on
查看已經創建好的表空間:
select default_tablespace, temporary_tablespace,
d.username from dba_users d;
查看當前用戶的缺省表空間:
select
username,default_tablespace from user_users;
4)Oracle數據庫建好后,要想在數據庫里建表,必須先為數據庫建立用戶,並為用戶指定表空間。
上面我們建好了數據庫和表空間,接下來建用戶:
語法[創建用戶]: create user 用戶名 identified by 口令[即密碼];
查看數據庫用戶:
select * from dba_users;
切換到新創建的用戶登陸
語法:CONNECT 用戶名/密碼 ;
connect 用戶名/密碼;