預設帳戶
| 帳戶 | 密碼 | 角色 |
| SYS | CHANGE_ON_INSTALL | 最高系統管理員 (AS SYSDBA) |
| SYSTEM | MANAGER | 本地管理員 |
| SCOTT | TIGER | 範例用戶 |
建立用戶
CREATE USER LEAP IDENTIFIED BY 1234;
系統權限授權/撤銷
-- 授權
GRANT CREATE SESSION TO LEAP; -- 登入
GRANT CREATE TABLE TO LEAP; -- 建表
GRANT UNLIMITED TABLESPACE TO LEAP; -- 無限制表空間
GRANT CREATE SESSION TO PUBLIC; -- 所有用戶登入
GRANT CREATE ANY TABLE TO PUBLIC; -- 所有用戶建任意表
GRANT ALTER ANY TABLE TO PUBLIC; -- 所有用戶改任意表
-- 撤銷
REVOKE CREATE SESSION FROM LEAP;
REVOKE CREATE TABLE FROM LEAP;
REVOKE UNLIMITED TABLESPACE FROM LEAP;
資料字典查詢
SELECT * FROM USER_SYS_PRIVS; -- 當前用戶系統權限
SELECT * FROM USER_TAB_PRIVS; -- 當前用戶表權限
SELECT * FROM USER_COL_PRIVS; -- 當前用戶欄位權限
SET LINESIZE 400; -- 設定顯示寬度
物件權限授權/撤銷(由擁有者執行)
GRANT SELECT ON MYTABLE TO LEAP2;
GRANT ALL ON MYTABLE TO LEAP2;
-- 欄位級授權(僅 INSERT/UPDATE)
GRANT UPDATE (COL_NAME) ON MYTABLE TO LEAP2;
GRANT INSERT (COL_NAME) ON MYTABLE TO LEAP2;
-- 注意:SELECT/DELETE 不支援欄位級
REVOKE SELECT ON MYTABLE FROM LEAP2;
REVOKE ALL ON MYTABLE FROM LEAP2;
權限傳遞
| 類型 | 可傳遞語法 | 不可傳遞語法 |
| 系統權限 | GRANT ALTER ANY TABLE TO LEAP2 WITH ADMIN OPTION; | GRANT ALTER ANY TABLE TO LEAP2; |
| 物件權限 | GRANT SELECT ON MYTABLE TO LEAP2 WITH GRANT OPTION; | GRANT SELECT ON MYTABLE TO LEAP2; |
角色管理
CREATE ROLE MYROLE;
GRANT CREATE SESSION TO MYROLE;
GRANT CREATE TABLE TO MYROLE;
GRANT MYROLE TO LEAP;
DROP ROLE MYROLE;
限制: UNLIMITED TABLESPACE、ANY 權限不可授予角色。角色不屬於特定用戶,為公共資源。
帳戶狀態控制
ALTER USER USERNAME ACCOUNT LOCK; -- 鎖定
ALTER USER USERNAME ACCOUNT UNLOCK; -- 解鎖
ALTER USER USERNAME PASSWORD EXPIRE; -- 密碼立即過期
刪除用戶
DROP USER USERNAME; -- 無物件
DROP USER USERNAME CASCADE; -- 有物件,強制連帶刪除
Listener 控制
LSNRCTL START [LISTENER_NAME];
LSNRCTL STOP [LISTENER_NAME];
DDL/DML/DCL 提交規則
- DDL (CREATE/DROP...):自動提交,無需 COMMIT
- DML (INSERT/UPDATE/DELETE):需手動 COMMIT
- DCL (GRANT/REVOKE):自動提交,無需 COMMIT