溫馨提示×

Oracle在Ubuntu中的權限設置指南

小樊
46
2025-09-29 20:04:04
欄目: 云計算

Oracle在Ubuntu中的權限設置指南

一、操作系統用戶與組管理

Oracle數據庫需要專用的操作系統用戶和組來隔離權限,確保數據庫運行的安全性。

  1. 創建用戶組:創建oinstall(安裝組,用于Oracle軟件安裝)和dba(數據庫管理員組,用于數據庫管理操作)兩個組。
    sudo groupadd oinstall
    sudo groupadd dba
    
  2. 創建Oracle用戶:創建名為oracle的操作系統用戶,將其加入oinstalldba組,設置密碼并指定主目錄(如/home/oracle)。
    sudo useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle
    sudo passwd oracle
    

二、目錄權限設置

Oracle需要訪問安裝目錄、數據目錄等,需正確設置所有權和權限,避免未授權訪問。

  1. 創建必要目錄:根據Oracle安裝路徑創建目錄(如/home/app/oracle為Oracle基目錄,/home/app/oradata為數據文件目錄)。
    sudo mkdir -p /home/app/oracle
    sudo mkdir -p /home/app/oradata
    
  2. 設置所有權:將目錄所有權賦予oracle用戶和oinstall組(oinstall組擁有讀寫執行權限,oracle用戶為所有者)。
    sudo chown -R oracle:oinstall /home/app/oracle
    sudo chown -R oracle:oinstall /home/app/oradata
    
  3. 設置目錄權限:目錄權限設為755(所有者可讀寫執行,組和其他用戶可讀執行),確保Oracle用戶能正常訪問,其他用戶無法修改。
    sudo chmod -R 755 /home/app/oracle
    sudo chmod -R 755 /home/app/oradata
    

三、Oracle用戶環境變量配置

Oracle用戶需配置環境變量,確保能正確啟動數據庫和相關工具。

  1. 編輯.bash_profile文件:切換到oracle用戶,編輯其家目錄下的.bash_profile文件(如/home/oracle/.bash_profile)。
    sudo su - oracle
    nano ~/.bash_profile
    
  2. 添加環境變量:在文件末尾添加以下內容(根據實際安裝路徑調整):
    export ORACLE_BASE=/home/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1  # 根據實際版本調整
    export ORACLE_SID=orcl  # 數據庫實例名
    export PATH=$PATH:$ORACLE_HOME/bin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    
  3. 使配置生效:保存文件后,執行source命令使環境變量立即生效。
    source ~/.bash_profile
    

四、系統內核參數調整

Oracle對系統資源(如共享內存、文件描述符)有較高要求,需調整內核參數以滿足需求。

  1. 編輯/etc/sysctl.conf文件:添加以下參數(根據服務器內存調整kernel.shmmax等值):
    kernel.shmmax = 2147483648  # 最大共享內存(單位:字節,建議為物理內存的一半)
    kernel.shmmni = 4096        # 共享內存段最大數量
    kernel.shmall = 524288      # 共享內存總頁數(shmmax/頁大小,頁大小通常為4KB)
    fs.file-max = 6815744       # 系統最大文件描述符數量
    net.ipv4.ip_local_port_range = 9000 65500  # 本地端口范圍(Oracle監聽端口范圍)
    
  2. 使參數生效:執行sysctl -p命令使配置立即生效。
    sudo sysctl -p
    

五、Oracle數據庫權限管理

Oracle數據庫權限分為系統權限(如創建會話、創建表)和對象權限(如對表的查詢、插入),需合理分配以確保安全。

  1. 以SYSDBA身份登錄:使用sqlplus以SYSDBA身份連接數據庫(需切換到oracle用戶)。
    sqlplus / as sysdba
    
  2. 創建數據庫用戶:創建用于應用程序連接的數據庫用戶(如myuser),并設置密碼。
    CREATE USER myuser IDENTIFIED BY mypassword;
    
  3. 授予系統權限:授予用戶連接數據庫和創建對象的權限(如CONNECT、RESOURCE)。
    GRANT CONNECT, RESOURCE TO myuser;
    
  4. 授予對象權限:授予用戶對特定對象(如employees表)的操作權限(如SELECT、INSERT)。
    GRANT SELECT, INSERT ON scott.employees TO myuser;
    
  5. 創建角色簡化權限管理:創建角色(如hr_manager),將常用權限授予角色,再將角色授予用戶(減少重復授權)。
    CREATE ROLE hr_manager;
    GRANT SELECT, INSERT, UPDATE ON scott.employees TO hr_manager;
    GRANT hr_manager TO myuser;
    

六、高級權限管理(可選)

  1. 使用AppArmor限制Oracle進程權限:安裝并啟用AppArmor,為Oracle進程創建配置文件,限制其對系統資源的訪問(如禁止訪問/tmp目錄)。
    sudo apt-get install apparmor
    sudo aa-enforce /etc/apparmor.d/usr.sbin.mysqld  # 示例,需根據Oracle路徑調整
    
  2. 配置sudo權限:允許oracle用戶無需密碼執行Oracle相關命令(如lsnrctl、rman),簡化日常操作。
    sudo visudo
    
    在文件末尾添加:
    oracle ALL=(ALL) NOPASSWD: /home/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start, 
                                /home/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl stop,
                                /home/app/oracle/product/19.0.0/dbhome_1/bin/rman target /
    

注意事項

  • 最小權限原則:只授予用戶完成工作所需的最小權限,避免過度授權(如開發人員無需DBA權限)。
  • 定期審查權限:每月檢查一次用戶權限,刪除不再使用的角色或權限(如離職用戶的權限)。
  • 備份權限配置:定期備份/etc/passwd、/etc/group、Oracle用戶環境變量文件和數據庫權限表(如DBA_SYS_PRIVS),以便恢復。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女