ubuntu

Ubuntu Oracle权限设置技巧

小樊
52
2025-10-08 06:37:55
栏目: 云计算

Ubuntu系统上Oracle数据库权限设置技巧

一、操作系统层面权限设置

1. 用户与组管理:遵循最小权限原则

为Oracle创建专用用户及分组,隔离系统权限。通常需创建以下组:

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle
sudo passwd oracle  # 设置用户密码

关键技巧:避免将Oracle用户加入sudo组,减少系统级权限风险。

2. 目录权限:精细化控制访问范围

Oracle软件目录(如/u01/app/oracle/product/19.0.0/dbhome_1)和数据目录(如/u01/app/oracle/oradata)需严格设置权限:

sudo mkdir -p /u01/app/oracle/{product/19.0.0/dbhome_1,oradata}
sudo chown -R oracle:oinstall /u01  # 所有者:oracle;所属组:oinstall
sudo chmod -R 775 /u01            # 目录权限:所有者可读/写/执行,组可读/执行,其他用户无权限

关键技巧:数据目录(如oradata)应限制为oracle用户专属访问,避免其他用户修改数据库文件。

3. 系统内核参数:优化Oracle运行环境

修改/etc/sysctl.conf文件,调整以下关键参数(根据服务器内存调整数值):

kernel.shmmax = 2147483648  # 最大共享内存段大小(建议为物理内存的一半)
kernel.shmall = 524288      # 共享内存总页数(shmmax/页大小,页大小通常为4KB)
kernel.shmmni = 4096        # 共享内存段最大数量
fs.file-max = 6815744       # 系统最大文件描述符数
net.ipv4.ip_local_port_range = 9000 65500  # 数据库监听端口范围

使参数生效:

sudo sysctl -p

关键技巧:参数设置过大会导致系统资源耗尽,需根据实际内存调整。

4. 用户资源限制:防止资源滥用

修改/etc/security/limits.conf文件,添加Oracle用户的资源限制:

oracle soft nproc 2047      # 最大进程数(软限制)
oracle hard nproc 16384     # 最大进程数(硬限制)
oracle soft nofile 1024     # 最大文件描述符数(软限制)
oracle hard nofile 65536    # 最大文件描述符数(硬限制)

关键技巧:软限制是用户可自行调整的上限,硬限制是系统允许的最大值,需合理设置避免资源耗尽。

二、Oracle数据库层面权限管理

1. 登录数据库:使用高权限账户

sysdba身份登录(需切换至oracle用户):

su - oracle
sqlplus / as sysdba

2. 用户创建:关联角色与权限

创建用户时,建议分配角色(如RESOURCE)而非直接授予大量系统权限:

CREATE USER myuser IDENTIFIED BY StrongPassword;  -- 创建用户
GRANT CONNECT, RESOURCE TO myuser;               -- 授予连接和资源权限

关键技巧RESOURCE角色包含创建表、视图等常用权限,避免直接授予DBA角色。

3. 权限分配:层级化与最小化

CREATE ROLE myrole;
GRANT SELECT ON mytable TO myrole;
GRANT myrole TO myuser;

关键技巧:角色化管理简化了权限维护,避免重复授权。

4. 权限维护:定期审计与调整

三、安全增强技巧

1. 使用AppArmor进行高级权限控制

安装并配置AppArmor,限制Oracle进程的访问范围:

sudo apt-get install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/usr.sbin.oracle  # 启用Oracle配置文件
sudo aa-status  # 查看AppArmor状态

关键技巧:AppArmor可防止Oracle进程越权访问系统文件,提升安全性。

2. 防火墙限制:仅开放必要端口

使用UFW限制Oracle监听端口(默认1521)的访问:

sudo ufw allow 22/tcp  # 允许SSH
sudo ufw allow 1521/tcp  # 允许Oracle监听
sudo ufw enable  # 启用防火墙

关键技巧:仅开放必要的端口,减少外部攻击面。

0
看了该问题的人还看了