(1)創建用戶(sys用戶下操作)
簡單創建用戶如下:
CREATE USER username IDENTIFIED BY password;
如果需要自定義更多的信息,如用戶使用的表空間等,可以使用如下:
CREATE USER mall IDENTIFIED BY 123456
DEFAULT TABLESPACE MALLTABLESPACE
TEMPORARY TABLESPACE temp
QUOTA 100M ON MALLTABLESPACE
PROFILE DEFAULT
ACCOUNT UNLOCK;
1、mall:是用戶名,自行替換
2、123456:是密碼,自行替換
3、DEFAULT TABLESPACE MALLTABLESPACE:用戶默認的表空間是MALLTABLESPACE,如果不設置,會使用數據庫的默認表空間設置
4、TEMPORARY TABLESPACE temp:臨時表空間為temp
5、QUOTA 100M ON MALLTABLESPACE:quota是限制用戶在表空間的空間配額,比如MALLTABLESPACE的表空間的存儲還有3g,但如果限額100m,那么用戶使用了100m之后,就沒有空間可存儲了,即使表空間還有多余的空間。如果想給用戶無限的授權:可以使用下面的sql修改:
alter user mall quota unlimited on malltablespace;
也可以查dba_ts_quotas看用戶配額:MAX_BYTES為-1表示不限額
6、PROFILE DEFAULT:使用默認的資源限制配置文件
7、ACCOUNT UNLOCK:解鎖用戶賬號,默認是解鎖的
用戶創建后通常需要額外的給用戶授予一些權限(請遵循最小授權原則),請參見本篇章的第6點用戶授權部分
(2)刪除用戶(sys用戶)
DROP USER username CASCADE;
cascade:表示級聯刪除,即同時刪除用戶擁有的所有對象,如表、視圖等
(3)查看用戶信息
select * from dba_users;
ACCOUNT_STATUS:用戶鎖定狀態,OPEN表示未鎖定,LOCKED表示鎖定;鎖定狀態時LOCK_DATA字段會記錄鎖定時間
DEFAULT_TABLESPACE:就是我們設置的用戶默認表空間,用戶建的表、索引、視圖等都存儲在此表空間下。
(4)更改用戶
上面我們已經給出了更改quota的sql,更改用戶的sql基本都是以alter user?username 開頭,以下給出幾個常見的sql:
--更改密碼
ALTER USER username IDENTIFIED BY new_password;
-- 更改默認表空間
ALTER USER username DEFAULT TABLESPACE new_tablespace;
-- 更改臨時表空間
ALTER USER username TEMPORARY TABLESPACE new_temp_tablespace;
-- 更改用戶角色
ALTER USER username GRANT role TO username;
-- 撤銷用戶角色
ALTER USER username REVOKE role FROM username;
(5)用戶的鎖定與解鎖(sys用戶)
鎖定MALL用戶:用戶鎖定后,用戶將不能再對數據庫進行任何操作
ALTER USER MALL ACCOUNT LOCK;
解鎖MALL用戶:
ALTER USER MALL ACCOUNT UNLOCK;
(6)用戶授權
用戶的授權基本語法為:
GRANT privilege TO username;
如:
?1、授予用戶建表權限
GRANT CREATE TABLE TO 用戶名;
2、授予用戶創建會話的權限
grant create session to 用戶名;
3、將用戶SCOTT下的USR_INFO表的查詢權限給MALL
GRANT SELECT ON SCOTT.USR_INFO?TO MALL;
4、當然我們也可以把所有的權限都給它(當然除非它確實需要,否則不建議):
GRANT ALL PRIVILEGES TO MALL;