AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 554637
Accepted
Dr I
Dr I
Asked: 2013-11-14 01:01:18 +0800 CST2013-11-14 01:01:18 +0800 CST 2013-11-14 01:01:18 +0800 CST

我的 Oracle DBA 需要 root 访问权限吗?

  • 772

我的 Oracle DBA 同事请求对我们的生产服务器进行 root 访问。
他认为他需要它来执行一些操作,比如重新启动服务器和其他一些任务。

我不同意他的观点,因为我为他设置了一个 Oracle 用户/组和一个 Oracle 用户所属的 dba 组。一切运行顺利,目前 DBA 没有 root 访问权限。
我还认为,所有管理任务(如计划的服务器重启)都需要由适当的管理员(在我们的案例中为系统管理员)完成,以避免与对基础设施交互的误解相关的任何类型的问题。

我想要来自系统管理员和 Oracle DBA 的意见 - Oracle DBA 是否有充分的理由在生产环境中拥有 root 访问权限?

如果我的同事真的需要这种级别的访问权限,我会提供,但出于安全和系统完整性的考虑,我很害怕这样做。

我不是在寻找利弊,而是关于我应该如何处理这种情况的建议。

linux
  • 8 8 个回答
  • 6476 Views

8 个回答

  • Voted
  1. Best Answer
    user130370
    2013-11-14T01:25:06+08:002013-11-14T01:25:06+08:00
    • 谁在服务器上安装 Oracle?
      如果是 DBA,他们需要 root 访问权限。如果是系统管理员,则 DBA 不是。

    • 当数据库服务器关闭时,深夜打电话给谁?
      如果您不能确保系统管理员 24/7 全天候可用,您可能需要授予 DBA 的 root 访问权限。

    请记住,如果您的 DBA 已经作为普通用户具有 shell 访问权限(无论有没有一些命令,他都可以通过 sudo 运行;有或没有被 chroot),这足以弄乱服务器(窃取他的帐户的坏人可以分叉炸弹,超过 ulimit 发送垃圾邮件,删除数据库,...)。

    由于所有这些原因,我认为在理想情况下,DBA 不应该拥有 root 访问权限;但在现实世界中,他们至少应该总是能够在紧急情况下获得它。

    • 14
  2. Giacomo1968
    2013-11-14T07:19:35+08:002013-11-14T07:19:35+08:00

    一般来说——并非特定于 DBA——任何在root没有给出正当理由的情况下要求访问的人都是:

    1. 一个不知道自己在做什么的人。
    2. 傲慢不合作。
    3. 以上两种。

    现在,他们可能有真正的原因需要root访问来处理他们的任务,但如果他们不能解释原因并以书面形式提出,我不会处理他们。与服务器打交道的专业人员了解并尊重边界。知道足以惹麻烦的热门人物相信规则适用于除他们之外的所有人。

    如果我不得不与这样的人发生争执,我坚持要提前安排时间,这样我就可以在服务器上与他们一起处理出现的问题。这实际上运作良好。

    另一种选择(可能不切实际)是创建相关服务器的精确克隆并授予他们root访问权限。当然,请务必将密码更改为特定于他们的密码。让他们炸毁一个孤立的开发箱。

    但一般来说,如果你是深夜被叫来清理这个家伙可能造成的混乱的人,那么你完全有权拒绝一揽子root访问请求。

    • 6
  3. ibre5041
    2013-11-14T07:10:11+08:002013-11-14T07:10:11+08:00

    理论上 DBA 可以在没有 root 权限的情况下工作,但双方都是 PITA。实际上不可能定义可通过 访问的命令列表sudo。

    在以下情况下给予 DBA 根权限:

    • 你不想在半夜被吵醒,只是为了重启服务器
    • 您想要快速流畅的事件管理
    • 如果您的服务器仅专用于数据库服务器

    DBA 通常需要 root 权限:内核参数调整(sysctl)、存储操作、问题调查。

    与严格定义的安全规则相比,适当的试听可确保更好的运行条件。如果您实施了审核,您总是可以询问他们为什么做了/改变了某些事情。如果您没有审核,则无论如何您都没有安全性。

    已编辑

    这是独立(非集群安装)的常见 Oracle 要求列表

    • 内核参数

      • 内存相关(大/超大页面配置、共享 RAM(ipcs)、不可交换(锁定)RAM)
      • 网络相关(发送/接收窗口大小,TCP keepalive)
      • 存储相关(打开文件的数量,异步 IO)

      可能有大约 15-20 个 sysctl 参数。Oracle 为它们中的每一个提供了一个推荐值或一个等式。对于某些参数,推荐的方程可能会随时间而变化(aync io),或者在某些情况下,Oracle 为同一参数提供了多个方程。

    • 存储:Linux udev 规则不保证引导持久设备名称。因此 Oracle 提供了内核驱动程序和工具(AsmLib)。这些允许您以 root 身份“标记”物理分区,然后您可以在管理数据库存储时看到这些标签
    • 问题排查:
      • 当数据库由于无法打开更多文件句柄而崩溃时,唯一的解决方案是增加内核限制,执行“sysctl -p”然后启动数据库。
      • 另外,当你发现物理内存太碎片化,数据库无法分配大页面时,唯一的选择就是重启服务器。
      • (DCD) - 死连接检测。例如,在 AIX 上 netstat 不打印 PID。将 TCP 连接与 PID 配对的唯一方法是内核调试器。
      • Glance(类似于 HP-UX 上的 top)需要 root 权限
      • 各种 Veritas 级别的调查
      • 和许多其他人

    在问题得到解决之前,您将“浪费”多少时间由您决定。我只是想指出,在某些情况下,强角色分离可能非常昂贵。因此,与其增加“安全”,不如关注减少风险和危险。这是不一样的。ttysnoop 或 shell spy 之类的工具允许您“记录”整个 ssh 会话,因此它们具有不可否认性。这可以比 sudo 更好地服务。

    • 4
  4. Mohamed Amjad
    2017-12-20T19:38:25+08:002017-12-20T19:38:25+08:00

    我是 Oracle DBA,我的回答是,通常 DBA 不需要 root 访问权限。但是 RAC DBA?绝对他需要 root 访问权限来管理 CRS、家务和所有。

    • 1
  5. Gary Cates
    2018-08-18T12:18:23+08:002018-08-18T12:18:23+08:00

    这个问题源于系统更简单的时代,操作系统与数据库进程是分开定义和识别的。系统管理和数据库管理的职责和责任非常不同。对于当今的 IT 环境,特别是对于当今的数据库服务器,这些职责和责任往往会重叠。系统管理员尽职尽责地限制“风险管理”方面的“根”访问。

    随着当今对 RAC 数据库系统出现问题的“高可用性”和“立即修复”的需求,系统管理员和数据库管理员为他们的职能业务社区服务,作为一个团队一起工作。“信任”不应该有任何顾虑,因为双方都有既得利益使 RAC 数据库服务器保持接近 100% 的时间在线。请记住,DBA 已经拥有作为数据库管理员的 shell 访问权限(有或没有他可以通过 sudo 运行的一些命令;有或没有被 chroot),所以显然 DBA 是一个“受信任的”代理。所以,实际上问题应该是,“为什么 Oracle DBA 不需要访问权限?”

    今天的 DBA 已经为数据库服务器承担了额外的责任,其中数据库服务器是 Oracle 真正应用集群 (RAC) 的成员,并利用 Oracle 自动存储管理 (ASMLIB) 来提供跨 RAC 数据库的共享存储。DBA 对 RAC 和 ASM 的管理减轻了已经过度劳累的系统管理员,这对 STS 组/团队来说应该是一个值得欢迎的贡献。

    而且,正如 ibre5043 所说,“......在某些情况下,强大的角色分离可能非常昂贵。因此,与其增加“安全性”,不如专注于降低风险和危险。这是不一样的。像 ttysnoop 或 shell spy 这样的工具可以让你“记录”整个 ssh 会话,因此他们授予不可否认性。这可以比 sudo 更好。此外,您应该询问谁在监控 SSA。

    • 0
  6. Andrew Brennan
    2018-09-12T04:09:54+08:002018-09-12T04:09:54+08:00

    如果服务器使用 CRS、RAC 或 Oracle Restart 等 Oracle Grid Infrastructure 软件,则许多关键数据库服务以 root 身份运行,并且许多关键数据库配置文件归 root 所有。这是软件的固有设计特征。如果这违反了您的政策,则需要修改政策。

    DBA 将需要 root 访问权限来管理这些功能。从理论上讲,您可以要求他提供一份他希望在 Sudo 中运行的命令的列表,但答案将是一个很长的列表。只需在 $GRID_HOME/bin 中查看 DBA 可能会定期使用的所有二进制文件的列表。如果他们正在执行修补活动(他们应该这样做),那么列表可能会变得更长。

    • 0
  7. Savvas
    2019-02-09T07:25:35+08:002019-02-09T07:25:35+08:00

    我刚刚提交了一个类似的问题。实际上,系统管理员不想授予root权限的原因是我认为的责任和问责制之一。

    但如果这是原因,那么 DBA 也应该是唯一的系统管理员。原因很简单。如果需要分离责任和责任,系统管理员也可以始终是 DBA。他可以冒充 oracle 帐户,他可以以 SYSDBA 身份进入数据库并执行任何操作,而无需 SYS 或 SYSTEM 密码。

    所以在我看来,如果需要将系统管理员和 DBA 分开,由于责任和责任,唯一合乎逻辑的原因是服务器也应该由 DBA 管理,而不是由系统管理员管理。服务器和数据库应该作为一个整体由 DBA 负责,DBA 也应该有一些系统管理知识。

    如果服务器用于托管数据库以上,并且需要单独的责任和问责制,这意味着麻烦。但是,如果服务器仅用于托管数据库,那么考虑到他也需要的无数情况,我认为 DBA 没有理由不具有 root 权限。

    就我个人而言,我会反过来提出这个问题。为什么系统管理员在专用数据库服务器上具有 root 权限?事实上,与 DBA(具有 root 特权)相比,他的专业需要的情况要少得多。

    • 0
  8. David M Skibinski
    2019-07-23T05:54:24+08:002019-07-23T05:54:24+08:00

    Oracle 网格安装和修补需要 root 访问权限。没有其他办法了。如果有一种方法可以为 DBA 授予临时 root 访问权限以满足此类需求,那将是理想的。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve