首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 入門實戰指南:從控制檔查詢到表空間、用戶、權限、角色、同義詞完整操作

     編輯:Oracle 資料庫基礎

核心檔案結構速查

DESC V$CONTROLFILE;  -- 控制檔
DESC V$DATAFILE;     -- 資料檔
DESC V$LOGFILE;      -- 重做日誌檔

SQL*Plus 基礎操作

  1. 執行腳本:@C:\sql\store_schema.sql
  2. 切換用戶:CONNECT system/manager@oracle
  3. DUAL 表測試:SELECT SYSDATE FROM DUAL;
  4. 語句終結符:分號 ;

表空間與用戶建立全流程

-- 1. 建立表空間(自動擴展)
CREATE TABLESPACE yyaccp
DATAFILE 'D:\oracle\oradata\Oracle\yyaccp.dbf'
SIZE 5M AUTOEXTEND ON;

-- 2. 建立用戶並指定預設/臨時表空間
CREATE USER yyaccp IDENTIFIED BY yyaccp
DEFAULT TABLESPACE yyaccp
TEMPORARY TABLESPACE temp;

-- 3. 授予建立會話權限(連線門檻)
GRANT CREATE SESSION TO yyaccp;

-- 4. 連線驗證
CONNECT yyaccp/yyaccp@oracle;

密碼管理三種方式

方式指令適用場景
ALTER USERALTER USER yyaccp IDENTIFIED BY accp;DBA 重設他人密碼
PASSWORD 命令登入後輸入 PASSWORD,互動式修改一般用戶自助修改
初始密碼過期CREATE USER ... PASSWORD EXPIRE強制首次登入修改

用戶刪除與權限回收


-- 刪除用戶(含級聯物件)
DROP USER yyaccp CASCADE;

-- 撤銷系統權限
REVOKE DBA FROM yyaccp;

系統權限授予體系

常用系統權限速查


CREATE SESSION        -- 連線
CREATE TABLE          -- 建表
CREATE SEQUENCE       -- 序列
CREATE VIEW           -- 視圖
CREATE PROCEDURE      -- 程序/函數/套件
CREATE USER           -- 建用戶
DROP ANY TABLE        -- 刪除任意表
EXECUTE ANY PROCEDURE -- 執行任意程序

授予選項進階

  • WITH ADMIN OPTION:受權者可再授予該系統權限
  • TO PUBLIC:授予所有現有/未來用戶

GRANT EXECUTE ANY PROCEDURE TO yyaccp WITH ADMIN OPTION;
GRANT EXECUTE ANY PROCEDURE TO PUBLIC;

查詢已授予系統權限


SELECT * FROM USER_SYS_PRIVS;  -- 當前用戶
SELECT * FROM DBA_SYS_PRIVS;   -- DBA 檢視所有

表空間配額管理:解決 ORA-01536


-- 三種方式任選一
ALTER USER yyaccp QUOTA 100M ON yyaccp;
ALTER USER yyaccp QUOTA UNLIMITED ON yyaccp;
GRANT UNLIMITED TABLESPACE TO yyaccp;  -- 所有表空間無限制

角色:權限集合的容器


-- 建立角色
CREATE ROLE employees2_manager;

-- 授予物件權限給角色
GRANT SELECT, INSERT, UPDATE, DELETE ON yyaccp.employees2 TO employees2_manager;

-- 將角色授予用戶
GRANT employees2_manager TO some_user;

物件權限:細粒度存取控制

欄位級授權


GRANT UPDATE (name, address) ON yyaccp.tusertable TO tuser;

授予選項與查詢

  • WITH GRANT OPTION:受權者可再授予該物件權限
  • USER_TAB_PRIVS_MADE:查詢我授予他人的表權限
  • USER_COL_PRIVS_MADE:查詢我授予他人的欄位權限

同義詞:簡化物件引用

私有同義詞


GRANT CREATE SYNONYM TO tuser;
CONNECT tuser/tuser;
CREATE SYNONYM tusertable FOR yyaccp.tusertable;
-- 之後直接 SELECT * FROM tusertable;

公共同義詞


GRANT CREATE PUBLIC SYNONYM TO yyaccp;
CONNECT yyaccp/accp;
CREATE PUBLIC SYNONYM sttable FOR yyaccp.sttable;
-- 所有用戶可直接 SELECT * FROM sttable;

撤銷物件權限


REVOKE INSERT ON sttable FROM tuser;

新手避坑清單

  1. 建表前確認表空間配額,否則噴 ORA-01536
  2. 外鍵欄位務必手動建索引,避免父表操作鎖死子表
  3. 大量授權用 ROLE,單一授權用直接 GRANT
  4. 同義詞不改變權限,僅簡化名稱引用
  5. 生產環境嚴禁 GRANT ... TO PUBLIC 敏感權限

熟練掌握上述核心操作,即可勝任 Oracle 初級 DBA/開發日常 90% 的權限與空間管理工作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
權限允許操作
SELECT查詢
INSERT新增
UPDATE修改
DELETE刪除
EXECUTE執行程序