Oracle在Ubuntu中的权限设置指南
导读:Oracle在Ubuntu中的权限设置指南 一、操作系统用户与组管理 Oracle数据库需要专用的操作系统用户和组来隔离权限,确保数据库运行的安全性。 创建用户组:创建oinstall(安装组,用于Oracle软件安装)和dba(数据库管...
Oracle在Ubuntu中的权限设置指南
一、操作系统用户与组管理
Oracle数据库需要专用的操作系统用户和组来隔离权限,确保数据库运行的安全性。
- 创建用户组:创建
oinstall
(安装组,用于Oracle软件安装)和dba
(数据库管理员组,用于数据库管理操作)两个组。sudo groupadd oinstall sudo groupadd dba
- 创建Oracle用户:创建名为
oracle
的操作系统用户,将其加入oinstall
和dba
组,设置密码并指定主目录(如/home/oracle
)。sudo useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle sudo passwd oracle
二、目录权限设置
Oracle需要访问安装目录、数据目录等,需正确设置所有权和权限,避免未授权访问。
- 创建必要目录:根据Oracle安装路径创建目录(如
/home/app/oracle
为Oracle基目录,/home/app/oradata
为数据文件目录)。sudo mkdir -p /home/app/oracle sudo mkdir -p /home/app/oradata
- 设置所有权:将目录所有权赋予
oracle
用户和oinstall
组(oinstall
组拥有读写执行权限,oracle
用户为所有者)。sudo chown -R oracle:oinstall /home/app/oracle sudo chown -R oracle:oinstall /home/app/oradata
- 设置目录权限:目录权限设为
755
(所有者可读写执行,组和其他用户可读执行),确保Oracle用户能正常访问,其他用户无法修改。sudo chmod -R 755 /home/app/oracle sudo chmod -R 755 /home/app/oradata
三、Oracle用户环境变量配置
Oracle用户需配置环境变量,确保能正确启动数据库和相关工具。
- 编辑
.bash_profile
文件:切换到oracle
用户,编辑其家目录下的.bash_profile
文件(如/home/oracle/.bash_profile
)。sudo su - oracle nano ~/.bash_profile
- 添加环境变量:在文件末尾添加以下内容(根据实际安装路径调整):
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
- 使配置生效:保存文件后,执行
source
命令使环境变量立即生效。source ~/.bash_profile
四、系统内核参数调整
Oracle对系统资源(如共享内存、文件描述符)有较高要求,需调整内核参数以满足需求。
- 编辑
/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监听端口范围)
- 使参数生效:执行
sysctl -p
命令使配置立即生效。sudo sysctl -p
五、Oracle数据库权限管理
Oracle数据库权限分为系统权限(如创建会话、创建表)和对象权限(如对表的查询、插入),需合理分配以确保安全。
- 以SYSDBA身份登录:使用
sqlplus
以SYSDBA身份连接数据库(需切换到oracle
用户)。sqlplus / as sysdba
- 创建数据库用户:创建用于应用程序连接的数据库用户(如
myuser
),并设置密码。CREATE USER myuser IDENTIFIED BY mypassword;
- 授予系统权限:授予用户连接数据库和创建对象的权限(如
CONNECT
、RESOURCE
)。GRANT CONNECT, RESOURCE TO myuser;
- 授予对象权限:授予用户对特定对象(如
employees
表)的操作权限(如SELECT
、INSERT
)。GRANT SELECT, INSERT ON scott.employees TO myuser;
- 创建角色简化权限管理:创建角色(如
hr_manager
),将常用权限授予角色,再将角色授予用户(减少重复授权)。CREATE ROLE hr_manager; GRANT SELECT, INSERT, UPDATE ON scott.employees TO hr_manager; GRANT hr_manager TO myuser;
六、高级权限管理(可选)
- 使用AppArmor限制Oracle进程权限:安装并启用AppArmor,为Oracle进程创建配置文件,限制其对系统资源的访问(如禁止访问
/tmp
目录)。sudo apt-get install apparmor sudo aa-enforce /etc/apparmor.d/usr.sbin.mysqld # 示例,需根据Oracle路径调整
- 配置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
),以便恢复。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle在Ubuntu中的权限设置指南
本文地址: https://pptw.com/jishu/720555.html