在SQL Server中使用架构的一些最佳做法是什么?


24

我了解SQL Server架构的功能,但是最佳实践是什么?确保它们提供了另一层安全性,并提供了数据库中数据库对象的逻辑分组,但是那里典型的是什么?根据我的经验,我经常看不到使用许多定制的模式。这是典型的吗?是使用自定义架构的频率较低的情况吗?

Answers:


16

我们用它们

  • 分隔每个客户端的权限(例如,我们具有桌面,WebGUI等架构)
  • 用于逻辑分组,例如(表的数据和登台模式)。

超越玛丽安(Marian)提到的白皮书的有用和实际观察:

  • 模式上的GRANT:每个对象没有更多权限。因此,WebGUI架构中的新proc自动具有该架构的权限
  • SSMS Object Explorer中的漂亮分组
  • OBJECT_SCHEMA_NAME
  • 您被迫限定对象名称(这是最佳做法)

15

我认为可以在以下MSDN文章中找到答案:SQL Server最佳实践–数据库对象架构的实现

Quote:“本白皮书讨论了改进用户数据库安全管理的机会,并概述了有关使用模式来管理开发和生产数据库中的数据库对象的一些最佳实践。具体地说,它解决了三种现实情况:

  • 在数据库所有者不知情的情况下保护数据库对象不被用户更改
  • 防止数据库基础对象(特别是独立软件供应商(ISV)数据库)临时或不正确的用户访问导致不良的应用程序性能
  • 在一个物理数据库内将相关的对象组(逻辑实体)组合在一起,以减少物理数据库的管理开销。”

我特别使用第三部分-根据对象的逻辑含义将对象组关联在一起-属于同一数据库内不同项目的不同模式。


-2

您可能需要阅读一些基础文章来解决您的一些问题。EF CoddCJ Date 撰写的有关关系数据库模型的文档解决了许多与设计,性能,安全性,最佳模式设计等有关的常见问题。最终,作为现代关系数据库模型的父亲,他们的工作成为DB2的基础, ORACLE,SQL Server(Microsoft和Sybase),Ingres,MySQL和所有其他关系数据库解决方案集都可用。


1
这似乎是在一般意义上谈论数据库设计,而不是在谈论SQL Server架构。
AakashM 2014年
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.