温馨提示×

SQLPlus在Linux中的权限管理

小樊
39
2025-12-16 18:02:35
栏目: 云计算

SQL*Plus 在 Linux 的权限管理

一 权限模型与最小权限原则

  • 权限分为两层:
    1. 操作系统层:谁能执行 sqlplus 二进制、谁能读取/写入相关目录与配置文件;
    2. 数据库层:数据库账户能否登录、能否执行 DDL/DML、能否执行管理操作(如 SYSDBA)。
  • 建议遵循最小权限原则:日常业务使用普通用户+必要角色;SYSDBA仅限极少数受控场景与受控账户使用。
  • 常见误区:把 SYSSYSDBA 用于日常业务;共享操作系统账号;把 sqlplus 放在全局可写目录。

二 操作系统层权限配置

  • 专用操作系统账号与组:创建 oracle 用户与 oinstall/dba 组,仅允许该账号访问 $ORACLE_HOME$ORACLE_BASE 与数据文件目录。
  • 文件与目录权限示例(按最小权限设置):
    • 关键目录:
      • $ORACLE_HOME/bin:仅 oracle:oinstall 0750
      • $ORACLE_HOME/lib、rdbms、sqlplus 等子目录:oracle:oinstall 0750
      • $ORACLE_BASE/oradata、diag、fast_recovery_area:oracle:oinstall 0750(数据文件/归档/诊断信息)
    • 客户端/脚本目录:业务脚本与钱包目录仅对 oracle 与必要组 0750/0700,严禁全局可写。
  • 安全基线:
    • 禁止以 root 直接运行 sqlplus;
    • 使用 sudo 精细授权(仅允许特定命令与参数);
    • 审计关键目录与 sqlplus 执行(auditd/firewalld/SELinux/AppArmor 配合使用)。

三 数据库层权限与角色

  • 登录与基础权限:新用户默认无任何权限,需显式授予。常用最小集:
    • 登录:GRANT CREATE SESSION TO ;
    • 对象创建:GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE TO ;
    • 表空间:ALTER USER DEFAULT TABLESPACE ;(必要时设置配额)
  • 角色使用:
    • 传统角色:CONNECT(连接与会话)、RESOURCE(在任意表空间建表等)、DBA(谨慎授予);
    • 生产建议:优先授予具体权限或自定义角色,避免直接授予 DBA
  • 管理权限:
    • SYSDBA 为最高管理权限,使用操作系统认证(如 sqlplus / as sysdba)时依赖 OS 身份与 Oracle 的 OSDBA 组映射;
    • 建议仅限应急与受控维护窗口使用,并留存审计记录。
  • 回收与清理:不再使用的账户及时 REVOKE,必要时 DROP USER … CASCADE。

四 常见连接方式与权限差异

  • 本地操作系统认证:sqlplus / as sysdba(走 OSDBA 组,无需口令,权限最高,慎用于日常)。
  • 口令认证本地/远程:sqlplus sys/password as sysdba;sqlplus username/password@orcl
  • 先入后连:sqlplus /nolog 后 CONNECT …(避免在命令行暴露口令)。
  • 连接串形式:sqlplus sys/password@//host:port/service_name;或 sqlplus username/password@net_service_name
  • 监听与实例状态:若提示 connected to an idle instance,需先启动实例(startup)或检查监听(lsnrctl status/start)。

五 安全加固清单与快速示例

  • 加固清单:
    • 操作系统:专用 oracle 账号、0750 目录权限、禁用 root 直连、sudo 精细化、审计与加固(auditd/SELinux/防火墙);
    • 数据库:最小权限与自定义角色、禁用默认 PUBLIC 可执行过程(如 UTL_FILE/UTL_TCP 等按需收回)、启用统一审计、强口令与口令轮换、限制 SYSDBA 使用范围与审批;
    • 网络:仅开放必要端口(如 1521/TCP)、ACL/白名单、必要时启用 TCPS
  • 快速示例(最小权限创建业务用户):
    • 创建用户与默认表空间:
      • CREATE TABLESPACE app_ts DATAFILE ‘/u01/app/oracle/oradata/ORCL/app01.dbf’ SIZE 500M AUTOEXTEND ON;
    • 创建用户并授权:
      • CREATE USER app_user IDENTIFIED BY <strong_password>;
      • ALTER USER app_user DEFAULT TABLESPACE app_ts QUOTA UNLIMITED ON app_ts;
      • GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE TO app_user;
    • 管理员维护(仅在需要时):
      • sqlplus / as sysdba(OS 认证,最高权限,务必受控与留痕)。

0