在SSMS中组织Dbs和表

时间:2010-01-08 08:05:59

标签: sql-server database ssms

这是我在4或5天前提出的问题的转贴,没有回应。希望这次能有更多的运气......

(使用SQL Server 2008)

在接下来的几周内,我计划将SQL服务器引入一个急需一台合适的数据服务器的办公室。目前,人们非常依赖松散的Excel和Access文件(补充了大量难以理解的VB代码来进行数据操作)遍布整个内部网络。

我们需要SQL服务器两件事:
1.对于将预先设计并将持续捕获数据的内部数据库 2.对于从客户端收到的数据集的临时上传,我们将对其进行分析

我是这个办公室里唯一熟悉SQL的人。我将训练其他5或6人使用它。

现在,我的问题是:你们如何设置数据库,以便使用Management Studio直观地识别存储的位置?更确切地说:如果这是一个Windows文件系统,它看起来像这样:

c:\ client work \ client 1 \ work of work 1(db with 10 tables)\\ c:\ client work \ client 1 \ work of work 2(db with 8 tables)\
c:\ client work \ client 1 \ work of work 3(db with 7 tables)\

c:\ internal \ accounting system \ some db with 8 tables \
c:\ internal \ accounting system \ some db with 5 tables \
c:\ internal \ some some system \ some db with 7 tables \

简而言之,我需要通过内部和客户工作进行视觉分割。客户工作我需要由不同的客户分开。对于每个客户,我需要拆分不同的工作集。 (内部工作遵循类似的模式)。

我所知道的解决方案:

  • 运行多个数据服务器(例如,一个内部,一个用于客户端工作)。不知道这将是什么缺点
  • 将模式分配给表格

我很想听听你的建议!

2 个答案:

答案 0 :(得分:2)

管理SQL Server的组织工具是实例,数据库和模式:

服务器可以运行多个实例。实例基本上是同一台机器上完全独立的服务器实例。

实例可以管理多个数据库。数据库是完整性的标准边界 - 您(通常)备份整个数据库,引用完整性仅限于在同一数据库中的对象之间等。

每个数据库都可以包含多个模式,允许您组织代码。

所有这些“容器”都以某种方式与安全相关。

我建议您首先获取组织数据并处理库存,以便了解您正在处理的数据,使用者和使用者 - 特别关注公共或协作数据(某些人一起使用的数据)并且需要进行分区访问(仅由特定角色使用)。 SQL Server实际上并不是存储非结构化数据的理想选择 - 例如,我不会将其视为文件服务器的简单替代品。

从那里开始为用户定义角色。拥有角色比为个人用户分配权限要好得多。它记录了访问的语义含义(执行此角色的任何人都需要此访问权限而不是用户的身份 - john和kate需要访问权限 - 这不会告诉您他们为什么需要访问权限)。确保角色足够精细。像AccountsReceivable这样的部门角色并不像PaymentApprover或InvoiceProcessor或AccountsSupervisor那样有用。用户可以扮演多个角色 - 这将为您的基础架构提供更多自我记录功能,并减少安全漏洞和麻烦。

这应该有助于定义您需要哪些容器以及从那里授予和指导数据基础架构的访问权限。

就让用户直接访问而言,我和Randy Minder一样,SQL Server只是一个专家用户工具。如果他们熟悉Access,一个很好的选择是让他们在SQL Server中使用Access来精心设计和选择的视图,直到他们为更系统的数据工程方法做好准备。

答案 1 :(得分:1)

IMO,您的数据库用户不必知道或关心数据库的设置位置或方式。除非他们接受过SQL训练,否则不应该让他们访问SSMS。这是一场等待发生的灾难。您应该创建允许用户访问所需数据的应用程序和/或报告。这样他们就不关心数据的位置,也不需要知道。