当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 授予 Oracle 权限的 9 个最佳实践

作者:精品下载站 日期:2024-12-14 06:08:09 浏览:15 分类:玩电脑

授予 Oracle 权限的 9 个最佳实践


Oracle 有多种功能可让您提高数据库的安全性。其中一项功能就是能够向用户授予权限。在本文中,我将讨论什么是权限并列出一些使用权限的最佳实践。它将帮助您更清楚地了解 Oracle 数据库中发生的情况。

Oracle 权限和角色是什么?

可以在您的Oracle数据库上设置不同的用户,这允许其他人登录您的数据库并进行他们的工作。事实上,不同的用户有不同的需求。分析师可能只需要查看某些表中的数据。开发人员可能需要插入、更新和删除数据。数据库管理员可能需要完全访问权限。

在 Oracle 中,权限是指用户可以执行的操作。特权主要分为三种类型:

  • 对象:允许访问特定对象(例如表)的权限。
  • 系统:允许执行系统命令的权限,例如创建表空间。
  • 基于角色:适用于角色内所有用户的一组权限。

角色是一组权限。可以将用户分配给角色,并且他们获得与该角色关联的所有权限。

Oracle 权限最佳实践

在 Oracle 中,有很多方法可以为角色和用户设置权限——有些很好,有些则不太好。让我们看一下授予权限的一些最佳实践。

1.仔细规划您的访问

当为所有用户设置权限时,事情很快就会失控。正如软件通常的情况一样,在开始之前仔细设计和规划要做什么是有帮助的。

您可以向特定用户、角色授予权限,以及将角色授予其他角色。如果没有预先计划访问权限以确保为每个用户提供适当的访问权限,您可能会面临访问重叠和/或某些用户可能拥有比他们需要的更多的访问权限。相反,缺乏规划可能意味着某些用户无法获得他们所需的访问权限。因此,在授予访问权限之前,最好先计划好要授予的访问权限。

这通常涉及:

  • 定义每个用户需要的角色
  • 定义每个角色的访问权限
  • 将用户分配给角色


2.向角色而不是特定用户授予权限

有两种方法可以为用户授予权限:

  • 将它们授予特定用户(例如 JSMITH)
  • 授予他们角色(例如,DEVELOPER)并将用户添加到角色

在这两种方法中,向角色授予权限然后将用户添加到角色被证明是有利的。这是因为它减少了管理,更易于查看,并且对于用户来说是一致的。

3.分配用户完成工作所需的最少访问权限

您可能会想向用户授予许多权限,让他们做他们想做的事情,或者允许他们访问,以防他们需要做传统工作范围之外的事情。然而,这可能会带来安全风险。用户可能会做出您没有预见到的更改,并且这些更改可能暂时不会显现出来,因为这不是他们经常做的事情。
授予访问权限的最佳实践是授予用户正常工作所需的权限,仅此而已。也就是说,授予的访问权限应该是用户完成其工作所需的最低限度。

4.为个人 DBA 创建用户而不是通用 DBA 用户

让通用用户作为数据库管理员 (DBA) 既简单又诱人。但是,出于以下几个原因,最好为每个 DBA 设置单独的用户:

  • 更轻松的审计跟踪。如果存在单独的用户,您可以比单个用户更轻松地跟踪更改。
  • 更好的密码管理。拥有单独的密码意味着每个用户只知道他或她的密码。

5.将 DBA 角色与开发人员角色分开

在开发过程中,DBA 和开发人员是同一个人是很常见的。

然而,当系统投入生产时,DBA 和开发人员通常扮演不同的角色。因此,最好为这两项工作创建不同的角色并分别分配。当一个人是 DBA,另一个人是开发人员时,权限就更容易管理。

6.不要使用 CONNECT 等 Oracle 角色

Oracle 中内置了一些角色,例如 CONNECT 角色。

一般来说,在设置安全性时不建议使用这些角色,因为 Oracle 可以随时针对任何版本更改它们。最好根据您的需求创建自己的角色。

7.角色可以嵌套

您不仅限于为用户分配角色。您可以将角色分配给其他角色。这允许角色的“嵌套”。

例如,您可能有:

  • 允许 HR 用户查看薪资数据的 HR 角色。
  • DEVELOPER 角色,允许开发人员创建表。
  • 结合了人力资源和开发人员的经理角色。

MANAGER 角色将拥有 HR 和 DEVELOPER 角色的权限,而无需专门向 MANAGER 角色添加权限。这也意味着,如果您更新 DEVELOPER 角色,任何伴随角色(例如 MANAGER)也将被更新。

角色“嵌套”减少了管理工作并使其更易于管理。

8.避免授予 PUBLIC

您可以将权限分配给 PUBLIC。然而,这不是一个好主意。将权限授予PUBLIC意味着任何人都可以使用该权限。这很难控制。它还优先于您设置的其他权限。因此,为了增强安全性,我建议避免使用 PUBLIC 选项。

9.仅向受信任的用户授予必要的系统权限

我提到有一种特权称为“系统特权”。这会向指定的用户或角色授予各种权限(例如 UPDATE ANY TABLE)。最好在数据库中避免此类权限。如果设置不正确,它们可能会被滥用,并且更难以维护。如果您必须设置它们,请仅将它们授予受信任的用户,即您相信不会滥用系统或破坏数据库的人。

要获取更多有关 Oracle 数据库安全性的操作方法,请查看 Netwrix Academy 中的“操作方法”类别。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯