Linux Oracle怎样设置权限
导读:Linux环境下Oracle权限设置指南 在Linux系统中设置Oracle数据库权限,需同时管理操作系统用户权限(确保Oracle服务正常运行)和数据库权限(控制用户对数据库的操作)。以下是具体步骤: 一、操作系统层面权限设置  创建Or...
    
Linux环境下Oracle权限设置指南
在Linux系统中设置Oracle数据库权限,需同时管理操作系统用户权限(确保Oracle服务正常运行)和数据库权限(控制用户对数据库的操作)。以下是具体步骤:
一、操作系统层面权限设置
- 创建Oracle专用用户
 使用root用户创建oracle用户(用于运行Oracle服务),并设置密码:sudo adduser oracle sudo passwd oracle
- 设置用户主目录与权限
 将Oracle用户主目录指向安装路径(如/u01/app/oracle),并修改所有权:sudo usermod -d /u01/app/oracle -m oracle # 创建主目录并迁移 sudo chown -R oracle:oinstall /u01 # 设置目录所有者(oinstall为Oracle组) sudo chmod -R 755 /u01 # 设置目录权限(所有者可读写执行,组和其他用户可读执行)
- 配置Oracle环境变量
 编辑oracle用户的.bash_profile文件,添加Oracle相关环境变量:
 添加以下内容(根据实际安装路径调整):sudo nano /u01/app/oracle/.bash_profileexport ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # Oracle安装目录 export ORACLE_SID=ORCLCDB # 数据库实例名 export PATH=$PATH:$ORACLE_HOME/bin # 添加Oracle命令到PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib # 设置库文件路径source /u01/app/oracle/.bash_profile
- 设置SELinux(若启用)
 若系统启用SELinux,需调整上下文以允许Oracle访问文件:sudo chcon -R -t oracle_home_t /u01/app/oracle sudo chcon -R -t oracle_db_t /u01/app/oradata
- 配置监听器与数据库权限
 确保oracle用户有权启动监听器和数据库:sudo chown oracle:oinstall /u01/app/oracle/network/admin/listener.ora sudo chown oracle:oinstall /u01/app/oracle/network/admin/tnsnames.ora
- 配置sudo权限(可选)
 若需oracle用户通过sudo执行特定命令(如启动监听器),编辑sudoers文件:
 添加以下内容:sudo visudooracle ALL=(ALL) NOPASSWD: /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start, /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl stop, /u01/app/oracle/product/19.0.0/dbhome_1/bin/sqlplus / as sysdba
二、Oracle数据库层面权限设置
- 以SYSDBA身份登录
 使用sqlplus工具以SYSDBA权限登录(需切换至oracle用户):su - oracle sqlplus / as sysdba
- 创建数据库用户
 创建用户并指定默认表空间(如USERS)、临时表空间(如TEMP):CREATE USER new_user IDENTIFIED BY StrongPassword123 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
- 分配表空间配额
 为用户设置表空间使用限额(避免无限制占用空间):ALTER USER new_user QUOTA UNLIMITED ON USERS; -- 无限制配额 -- 或指定具体大小:ALTER USER new_user QUOTA 100M ON USERS;
- 授予系统权限
 根据用户需求授予系统权限(如CREATE SESSION允许登录,CREATE TABLE允许建表):GRANT CONNECT, RESOURCE TO new_user; -- CONNECT用于登录,RESOURCE用于创建对象 -- 或单独授予:GRANT CREATE SESSION TO new_user; GRANT CREATE TABLE TO new_user;
- 授予对象权限
 允许用户操作其他用户的对象(如SCOTT用户的EMP表):GRANT SELECT, INSERT, UPDATE ON SCOTT.EMP TO new_user; -- 授予查询、插入、更新权限 -- 若允许用户将权限转授他人,添加WITH GRANT OPTION:GRANT SELECT ON SCOTT.EMP TO new_user WITH GRANT OPTION;
- 使用角色简化权限管理
 创建角色并分配权限,再授予用户(减少重复操作):CREATE ROLE hr_manager; -- 创建角色 GRANT CREATE TABLE, CREATE VIEW, SELECT ON SCOTT.EMP TO hr_manager; -- 分配权限给角色 GRANT hr_manager TO new_user; -- 将角色授予用户
- 查看权限信息
- 查看系统权限:SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'NEW_USER';
- 查看对象权限:SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'NEW_USER';
- 查看用户角色:SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'NEW_USER';
 
- 查看系统权限:
- 回收权限
 若需撤销权限,使用REVOKE命令:REVOKE CREATE SESSION, RESOURCE FROM new_user; -- 回收系统权限 REVOKE SELECT ON SCOTT.EMP FROM new_user; -- 回收对象权限 REVOKE hr_manager FROM new_user; -- 回收角色权限
注意事项
- 最小权限原则:仅授予用户完成任务所需的最低权限(如普通用户无需DBA权限)。
- 角色管理:预定义角色(如CONNECT、RESOURCE)适用于大多数场景,自定义角色可提高管理效率。
- 定期审计:定期检查用户权限,删除不再需要的权限或用户,避免权限滥用。
通过以上步骤,可完成Linux环境下Oracle数据库的权限设置,确保系统安全与数据库正常运行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Oracle怎样设置权限
本文地址: https://pptw.com/jishu/740239.html
