使用CREATE USER
命令創建SQL*Plus登錄用戶,并指定密碼(將your_username
、your_password
替換為實際值):
CREATE USER your_username IDENTIFIED BY your_password;
根據用戶需求授予最小化權限(避免過度授權),常見權限組合包括:
GRANT CREATE SESSION, CREATE TABLE TO your_username;
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE TO your_username;
若為用戶分配了預定義角色(如CONNECT
、RESOURCE
),可通過ALTER USER
命令設置默認角色,使用戶在連接時自動激活:
ALTER USER your_username DEFAULT ROLE CONNECT, RESOURCE;
執行FLUSH PRIVILEGES
命令強制數據庫重新加載權限表:
FLUSH PRIVILEGES;
使用新用戶登錄SQL*Plus,嘗試執行授權操作(如創建表),確認權限是否生效:
sqlplus your_username/your_password@localhost:1521/ORCLCDB
-- 連接成功后執行測試命令
CREATE TABLE test_table (id NUMBER, name VARCHAR2(50));
編輯用戶主目錄下的.sqlplusrc
文件(如/home/your_username/.sqlplusrc
),添加以下內容,使SQL*Plus啟動時自動提示輸入用戶名:
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 27 14:48:34 2021
Enter user-name:
保存后,運行sqlplus
命令時將不再顯示默認版本信息,直接提示輸入用戶名和密碼。
在.sqlplusrc
文件中添加連接字符串,簡化遠程連接命令:
DEFINE _CONNECT_IDENTIFIER = "your_service_name"
之后可使用簡化的命令連接:
sqlplus your_username/your_password@your_service_name
SHOW GRANTS
命令,查看已授予的權限。GRANT
命令補充所需權限(如GRANT CREATE TABLE TO your_username;
)。ALTER USER ... DEFAULT ROLE ...
)或手動激活角色(SET ROLE role_name;
)。僅授予用戶完成工作所需的最低權限(如普通用戶無需DROP TABLE
權限),減少安全風險。
限制.sqlplusrc
文件的訪問權限(如chmod 600 ~/.sqlplusrc
),防止敏感信息(如密碼)泄露。
定期檢查用戶權限分配情況(如SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'YOUR_USERNAME';
),及時回收不必要的權限。
若允許遠程連接,配置防火墻開放1521端口(Oracle默認端口),并使用tnsping
命令測試網絡連通性:
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
tnsping your_service_name