【问题标题】:SQL Server and Oracle read / write rolesSQL Server 和 Oracle 读/写角色
【发布时间】:2011-03-30 08:31:54
【问题描述】:

我需要在 SQL Server 和 Oracle 上创建一些角色(我不知道如何正确调用它,所以我将其命名为 'role :)),而我对这两个数据库服务器真的不太了解,所以我不知道我应该寻找什么。

我需要创建 2 个角色:

  • 只能从表中过滤数据 (SELECT) 的用户。
  • 可以修改数据(即 DELETE 语句)但不能修改架构(在 DB 中添加/删除表)的用户

我也需要帮助,如何使用 .Net 中的这些角色。

你能帮我,给我一些我应该寻找的线索吗?或者你有一个现成的解决方案。我真的很感激任何帮助。 TIA。

【问题讨论】:

  • 您打算如何对用户进行身份验证和授权?
  • 我有一个可以使用 MSSQL 或 Oracle DB 的大型应用程序。在某些情况下,我只会使用不同的凭据连接到数据库(在 mssql 中不同的连接字符串,oracle - 我不知道)。我将在下周深入研究这个主题,我对数据库一点也不擅长,但我希望我能完成:)
  • 很抱歉,描述了您的应用程序如何与数据库通信。我在问您的应用程序如何知道 Jane 是否在使用它以及 Jarek 何时使用它。如果不能,我不确定 DB 角色正在为您做什么。

标签: .net sql sql-server oracle roles


【解决方案1】:

我无法与 Oracle 交谈,因为我从未使用过它,但在 SQL Server 中有 2 个内置角色可以做到这一点:db_datareader 和 db_datawriter。请注意,这些是分开的,因此要读取和写入,您将需要这两个角色。如果您想在 .net 应用程序中使用这些角色,那么最简单的方法是在连接字符串中使用集成 Windows 身份验证,然后将这些角色添加到 SQL 管理工作室中相关数据库的 Windows 用户。

【讨论】:

  • 如果您不能使用 Windows 身份验证,您可以设置 2 个具有相关角色的不同 SQL 用户,然后以您需要的任何用户身份连接。或者为应用程序的每个用户设置一个 SQL 用户。
【解决方案2】:

Oracle 没有提供与 SQL Server 角色等效的角色。这是因为它鼓励遵守principle of Least Privilege。但是,我们完全有可能想出我们自己的。

create role db_datareader 
/
grant select any table to db_datareader 
/

同样,我们可以通过向角色授予各种 DML ANY 权限来构建等效的 db_datawriter。作为一项规则,我建议不要这样做。在大多数情况下,只有 DBA 需要具有 ANY 级别的权限,并且已经为他们提供了 DBA 角色。

【讨论】:

  • 太好了,谢谢。你能给我一个链接,我可以在这里阅读更多信息吗?我需要在.Net应用程序中使用它,当你使用MS SQL时很容易,你只需要使用不同的连接字符串。但我不知道我是否可以对 oracle 做同样的事情。 TIA。
【解决方案3】:

Oracle 具有一组系统权限,可以授予帐户以实现此目的。通常是带有ANY 字样的权限。

例如among the privileges:

INSERT ANY TABLE - 允许用户插入数据库中的任何表。

SELECT ANY TABLE - 允许用户从数据库中的任何表、视图或实体化视图中进行选择。

【讨论】:

    【解决方案4】:

    简短回答:MSSQL 具有称为 db_datareader 和 db_datawriter 的内置角色,它们与您想要的很接近。 Oracle 没有(据我所知,我可能错了),所以你必须自己定义。

    长答案:MSSQL 和 Oracle 中的权限可能很复杂,尤其是因为它们在登录名/用户/数据库/模式等方面有完全不同的概念。您确实需要花时间来了解它们,以便有效地管理权限,或者你很有可能会做一些你不应该做的事情。如果你自己没有时间,那么考虑找一个有时间的人。

    您也可以在应用程序级别管理权限,但这无济于事,因为您仍然需要知道如何管理应用程序用于连接数据库的帐户并避免出现问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-17
      • 2011-09-18
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      相关资源
      最近更新 更多