一、登入與啟動
# 以 OS 驗證身分登入 SQL*Plus (無需密碼)
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
# 或直接指定連線字串
sqlplus system/manager@ora9i
# 啟動資料庫
SQL> STARTUP
二、資料庫與例項資訊查詢
-- 查看目前資料庫名稱
SELECT name FROM v$database;
-- 查看例項狀態
SELECT * FROM v$instance;
-- 查看所有表格
SELECT table_name FROM all_tables;
SELECT table_name FROM all_tables WHERE table_name LIKE 'U%';
-- 查看表結構
DESC all_tables;
DESC cqi.t_bbs_xuser;
-- 查詢資料
SELECT * FROM cqi.t_bbs_xuser;
三、使用者與權限管理
-- 建立使用者
CREATE USER test11 IDENTIFIED BY test
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
-- 授權角色與系統權限
GRANT connect, resource, dba TO test11;
GRANT sysdba TO test11;
-- 修改密碼
ALTER USER sys IDENTIFIED BY test;
ALTER USER system IDENTIFIED BY test;
-- 查看擁有 SYSDBA/SYSOPER 的使用者
SELECT * FROM v$pwfile_users;
-- 查看當前連線使用者
SHOW USER;
四、權限與角色查詢
-- 使用者查看自身權限/角色
SELECT * FROM user_tab_privs;
SELECT * FROM user_role_privs;
-- DBA 查看任意使用者權限/角色
SELECT * FROM dba_tab_privs;
SELECT * FROM dba_role_privs;
-- 資料字典視圖三大前綴差異
-- USER_* : 僅含自己建立的物件
-- ALL_* : 含自己可存取的所有物件
-- DBA_* : 含全資料庫所有物件 (需 DBA 權限)
-- 查看所有使用者
SELECT * FROM dba_users;
SELECT * FROM all_users;
SELECT * FROM user_users;
-- 查看系統權限
SELECT * FROM dba_sys_privs;
-- 查看物件權限
SELECT * FROM dba_tab_privs;
-- 查看所有角色
SELECT * FROM dba_roles;
-- 查看角色擁有的系統權限
SELECT * FROM dba_sys_privs WHERE grantee = 'RESOURCE';
五、SQL*Plus 實用技巧
-- 執行腳本檔
SQL> @C:\RUN.SQL
-- 清除螢幕
-- Windows: HOST CLS 或 CLEAR SCREEN
-- Linux/Unix: CLEAR SCR 或 !clear
-- 設定顯示格式
SET LINESIZE 200
SET PAGESIZE 1000
SET AUTOTRACE TRACEONLY EXPLAIN
六、其他常用查詢
-- 查看預設表空間
SELECT username, default_tablespace FROM user_users;
-- 查看角色詳細權限
SELECT * FROM role_sys_privs WHERE role = 'RESOURCE';