gpt4 book ai didi

sql-server - SQL Server 角色、架构、用户

转载 作者:行者123 更新时间:2023-12-01 18:31:23 26 4
gpt4 key购买 nike

我一直试图弄清楚为什么 SQL Server 有 db_owner 架构和 db_owner 角色?这很令人困惑。我一直在寻找答案,到目前为止,这就是我的理解:

  1. 所有表和对象(例如约束等)都属于一个模式。 DBO 是默认架构。
  2. 用户可能被授予编辑每个对象或架构的权限。架构上的权限将权限扩展到该架构内的所有对象。因此您不必为每个单独的对象授予权限。
  3. 为了方便起见,角色将权限组合在一起。

如果其中有任何不正确的地方,请告诉我。但我认为到目前为止一切都很好。现在我的问题是:

  1. SQL Server Management Studio 的“数据库用户”对话框中所看到的 db_owner 架构到底是什么?在同一对话框中,将“默认架构”定义为 dbo。为什么两者不一样?如果默认情况下SQL Server使用dbo创建其下的所有对象,那么db_owner有什么用?
  2. 为什么用户想要拥有一个架构?您已经分配权限/角色。拥有 db_accessadmin 能给您带来什么?
  3. 您能否举一个在 db_owner 架构和 db_accessadmin 架构下创建对象的示例?换句话说,有人合法地使用这些模式吗?

最佳答案

SQL Server 模式只是对象的容器,例如表、存储过程等。数据库角色是一组主体,例如 Windows 登录名、sql server 用户等。

这个想法是,您可以拥有一个“IT”角色,并将所有 IT 用户置于该角色之下。然后您可以有一个名为“IT”的模式,并在该模式下包含属于 IT 的所有表。开箱即用的 SQL Server 为数据库中的每个默认用户和角色创建匹配的架构,但我认为其目的是您对其进行自定义以满足组织的需求。

This article有关于所有者和架构之间差异的更多信息。 This question Stack Overflow 上也可能有用。

关于sql-server - SQL Server 角色、架构、用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155120/

26 4 0
文章推荐: r -\usepackage{Sweavel} 产生错误 : It seems you are using the Sweave-specific syntax
文章推荐: java - 将 List 分解为一组已知派生类型的列表