小编典典

架构,MS SQL中对象的所有者

sql

默认情况下,使用dbo owner / schema设置对象(表,存储过程等)(我认为ms sql 2000称它为owner,而ms sql2005称它为schema)

所有者/架构实际上是数据库中的角色或用户。我一直都保留dbo的默认设置,但是最近我在Microsoft培训书籍中看到了一些示例,其中某些表和存储过程具有不同的所有者/方案。什么时候这样做有益,为什么呢?


阅读 261

收藏
2021-03-23

共1个答案

小编典典

如果您有安全问题,则使用架构特别有益。

如果您有多个访问数据库的应用程序,则可能不希望授予后勤部门对人力资源记录的访问权限。因此,您将所有人力资源表都放入了hr模式,并且只允许hr角色的用户对其进行访问。

六个月后,物流现在需要知道内部费用帐户,以便他们可以将所有这些蓝色笔发送给正确的位置人员。然后,您可以创建一个存储过程,该存储过程以具有查看hr模式以及后勤模式权限的用户身份执行。物流用户永远不需要知道人力资源中发生了什么,但是他们仍然可以获取他们的数据。

您还可以按照cfeduke所建议的方式使用模式,并仅使用它们在对象浏览器中对事物进行分组。如果您要这样做,请当心,因为当您确实只需要一个dbo.Address时,您可能最终创建Person.Address和Company.Address(我没有敲您的示例cfeduke,只是使用它来说明这两个地址表可能与YMMV相同或不同。

2021-03-23