首页主机资讯Linux Oracle怎样设置权限

Linux Oracle怎样设置权限

时间2025-10-31 19:32:04发布访客分类主机资讯浏览418
导读:Linux环境下Oracle权限设置指南 在Linux系统中设置Oracle数据库权限,需同时管理操作系统用户权限(确保Oracle服务正常运行)和数据库权限(控制用户对数据库的操作)。以下是具体步骤: 一、操作系统层面权限设置 创建Or...

Linux环境下Oracle权限设置指南

在Linux系统中设置Oracle数据库权限,需同时管理操作系统用户权限(确保Oracle服务正常运行)和数据库权限(控制用户对数据库的操作)。以下是具体步骤:

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

  1. 创建Oracle专用用户
    使用root用户创建oracle用户(用于运行Oracle服务),并设置密码:
    sudo adduser oracle
    sudo passwd oracle
    
  2. 设置用户主目录与权限
    将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                     # 设置目录权限(所有者可读写执行,组和其他用户可读执行)
    
  3. 配置Oracle环境变量
    编辑oracle用户的.bash_profile文件,添加Oracle相关环境变量:
    sudo nano /u01/app/oracle/.bash_profile
    
    添加以下内容(根据实际安装路径调整):
    export 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
    
  4. 设置SELinux(若启用)
    若系统启用SELinux,需调整上下文以允许Oracle访问文件:
    sudo chcon -R -t oracle_home_t /u01/app/oracle
    sudo chcon -R -t oracle_db_t /u01/app/oradata
    
  5. 配置监听器与数据库权限
    确保oracle用户有权启动监听器和数据库:
    sudo chown oracle:oinstall /u01/app/oracle/network/admin/listener.ora
    sudo chown oracle:oinstall /u01/app/oracle/network/admin/tnsnames.ora
    
  6. 配置sudo权限(可选)
    若需oracle用户通过sudo执行特定命令(如启动监听器),编辑sudoers文件:
    sudo visudo
    
    添加以下内容:
    oracle 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数据库层面权限设置

  1. 以SYSDBA身份登录
    使用sqlplus工具以SYSDBA权限登录(需切换至oracle用户):
    su - oracle
    sqlplus / as sysdba
    
  2. 创建数据库用户
    创建用户并指定默认表空间(如USERS)、临时表空间(如TEMP):
    CREATE USER new_user IDENTIFIED BY StrongPassword123 
    DEFAULT TABLESPACE USERS 
    TEMPORARY TABLESPACE TEMP;
        
    
  3. 分配表空间配额
    为用户设置表空间使用限额(避免无限制占用空间):
    ALTER USER new_user QUOTA UNLIMITED ON USERS;
          -- 无限制配额
    -- 或指定具体大小:ALTER USER new_user QUOTA 100M ON USERS;
        
    
  4. 授予系统权限
    根据用户需求授予系统权限(如CREATE SESSION允许登录,CREATE TABLE允许建表):
    GRANT CONNECT, RESOURCE TO new_user;
          -- CONNECT用于登录,RESOURCE用于创建对象
    -- 或单独授予:GRANT CREATE SESSION TO new_user;
         GRANT CREATE TABLE TO new_user;
        
    
  5. 授予对象权限
    允许用户操作其他用户的对象(如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;
        
    
  6. 使用角色简化权限管理
    创建角色并分配权限,再授予用户(减少重复操作):
    CREATE ROLE hr_manager;
          -- 创建角色
    GRANT CREATE TABLE, CREATE VIEW, SELECT ON SCOTT.EMP TO hr_manager;
          -- 分配权限给角色
    GRANT hr_manager TO new_user;
          -- 将角色授予用户
    
  7. 查看权限信息
    • 查看系统权限: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';
  8. 回收权限
    若需撤销权限,使用REVOKE命令:
    REVOKE CREATE SESSION, RESOURCE FROM new_user;
          -- 回收系统权限
    REVOKE SELECT ON SCOTT.EMP FROM new_user;
               -- 回收对象权限
    REVOKE hr_manager FROM new_user;
                        -- 回收角色权限
    

注意事项

  • 最小权限原则:仅授予用户完成任务所需的最低权限(如普通用户无需DBA权限)。
  • 角色管理:预定义角色(如CONNECTRESOURCE)适用于大多数场景,自定义角色可提高管理效率。
  • 定期审计:定期检查用户权限,删除不再需要的权限或用户,避免权限滥用。

通过以上步骤,可完成Linux环境下Oracle数据库的权限设置,确保系统安全与数据库正常运行。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux Oracle怎样设置权限
本文地址: https://pptw.com/jishu/740239.html
如何在Linux上监控Oracle Linux Oracle怎样进行故障排查

游客 回复需填写必要信息