Microsoft SQL Server的拥有架构和角色成员资格之间的区别


24

Owned Schemas和之间有区别Role Members吗?

据我了解,这Role Members是强制性的-用户需要Role Members选中至少一个复选框。

但是,这Owned Schemas不是强制性的。确实让我感到奇怪的是,为什么需要Owned Schemas在其中安装。

在此处输入图片说明

Answers:


17

苹果和橘子。角色是角色,架构是架构。存在一个称为角色db_accessadmin以及一个称为架构的事实,db_accessadmin并不意味着角色是架构,也不意味着架构是角色。角色是安全性成员资格容器,主体是角色的成员。架构包含数据库架构绑定的对象,并由主体拥有。创建新用户时,您可以选择其默认架构,将其添加到某些角色,并授予其架构所有权。尽管这些动作是分开的,但是此对话框的设计者认为它们在某种程度上是相关的,值得所有UX领域使用(这是有问题的,但主题完全不同)。


这两行之间阅读,我猜想拥有这些模式的意义在于,例如,您可以使具有db_datareader角色模式的用户可以写入某些对象,而其他人不一定可以读取这些对象。对于只需要读取访问权限dbo但需要安装一些存储的proc或触发器的应用程序来说,它会很好地工作。当然,这仍然需要您手动将每个用户添加到角色和架构中。
jpaugh

-1

嗯..这是一个非常古老的话题,但是对于那些仍然会来这里的人来说,我仍然要花2美分。此链接是上述查询的最佳答案。

https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/sql/ownership-and-user-schema-separation-in-sql-server

摘录自同一:

SQL Server附带十个预定义的架构,它们与内置数据库用户和角色的名称相同。这些主要是为了向后兼容而存在。如果不需要,可以删除具有与固定数据库角色相同名称的架构。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.