Ubuntu Oracle用户权限如何设置
导读:Ubuntu系统下Oracle用户权限设置指南 一、操作系统层面:创建Oracle专用用户及组 在Ubuntu上运行Oracle数据库前,需先创建专用的用户组和用户,用于隔离权限并提升安全性。 创建用户组: 使用groupadd命令创建o...
Ubuntu系统下Oracle用户权限设置指南
一、操作系统层面:创建Oracle专用用户及组
在Ubuntu上运行Oracle数据库前,需先创建专用的用户组和用户,用于隔离权限并提升安全性。
- 创建用户组:
使用groupadd
命令创建oinstall
(Oracle安装组,负责软件安装)和dba
(数据库管理员组,负责数据库管理)两个核心组:sudo groupadd oinstall sudo groupadd dba
- 创建Oracle用户:
使用useradd
命令创建oracle
用户,将其加入oinstall
(主组)和dba
(附加组),并设置初始密码:sudo useradd -g oinstall -G dba oracle sudo passwd oracle # 设置强密码(如包含大小写字母、数字和特殊字符)
二、操作系统层面:设置Oracle目录权限
Oracle数据库需要特定目录存储软件、数据文件等,需正确配置所有权和权限,避免未授权访问。
- 创建核心目录:
新建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 sudo mkdir -p /u01/app/oracle/oradata
- 设置目录所有权:
将软件目录的所有权赋予oracle:oinstall
(Oracle用户+安装组),数据目录的所有权赋予oracle:dba
(Oracle用户+管理员组):sudo chown -R oracle:oinstall /u01/app/oracle/product sudo chown -R oracle:dba /u01/app/oracle/oradata
- 设置目录权限:
软件目录设置为750
(所有者可读/写/执行,组可读/执行,其他用户无权限),数据目录设置为770
(所有者与组可读/写/执行,其他用户无权限):sudo chmod -R 750 /u01/app/oracle/product sudo chmod -R 770 /u01/app/oracle/oradata
三、Oracle数据库层面:用户权限管理
通过SQL*Plus以SYSDBA
身份登录,完成Oracle数据库用户的创建、权限分配及验证。
- 登录数据库:
切换至oracle
用户,使用sqlplus
以SYSDBA
身份连接:su - oracle sqlplus / as sysdba
- 创建数据库用户:
使用CREATE USER
命令创建用户(如hr_user
),设置密码及默认表空间(如USERS
)、临时表空间(如TEMP
),并分配初始存储配额(如10MB):CREATE USER hr_user IDENTIFIED BY HrPass123 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 10M ON users;
- 分配系统权限:
使用GRANT
命令授予用户必要的系统权限(如CREATE SESSION
允许登录,CREATE TABLE
允许创建表):GRANT CREATE SESSION, CREATE TABLE TO hr_user;
- 分配对象权限:
授予用户对特定数据库对象(如employees
表)的操作权限(如SELECT
查询、UPDATE
更新):GRANT SELECT, UPDATE ON scott.employees TO hr_user;
- 创建与管理角色:
- 创建角色:将常用权限组合成角色(如
hr_manager
),简化权限分配:CREATE ROLE hr_manager; GRANT CREATE JOB, DELETE ANY TABLE TO hr_manager;
- 授予角色给用户:将角色赋予目标用户(如
hr_user
):GRANT hr_manager TO hr_user;
- 创建角色:将常用权限组合成角色(如
- 撤销权限:
使用REVOKE
命令撤销用户或角色的权限(如撤销hr_user
的SELECT
权限):REVOKE SELECT ON scott.employees FROM hr_user;
四、操作系统层面:Oracle用户环境变量配置
为oracle
用户配置环境变量,确保Oracle命令(如sqlplus
、lsnrctl
)能正常运行。
- 编辑
.bash_profile
文件:
切换至oracle
用户,使用文本编辑器(如nano
)修改~/.bash_profile
:su - oracle nano ~/.bash_profile
- 添加环境变量:
在文件末尾添加以下内容(根据实际Oracle安装路径调整):export ORACLE_BASE=/u01/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
五、权限管理最佳实践
- 最小权限原则:仅授予用户完成工作所需的最低权限(如普通用户无需
DROP TABLE
权限)。 - 定期审计权限:使用
SELECT * FROM USER_SYS_PRIVS;
(查看系统权限)、SELECT * FROM USER_TAB_PRIVS;
(查看对象权限)定期检查权限分配情况,及时回收冗余权限。 - 分离职责:将数据库安装(
oinstall
组)、管理(dba
组)、应用访问(普通用户组)权限分离,降低安全风险。 - 强化密码策略:要求Oracle用户设置复杂密码(长度≥8位,包含大小写字母、数字和特殊字符),并定期更换。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Oracle用户权限如何设置
本文地址: https://pptw.com/jishu/716567.html