阅读量:1
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 visudooracle 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),以便恢复。
以上就是关于“Oracle在Ubuntu中的权限设置指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm