2010-01-08 69 views
0

這是對我在4或5天前提出的問題的轉發,其中零響應。希望更多的運氣這個時候......在SSMS中組織DBS和表格

(使用SQL Server 2008)

在接下來的幾個星期我都計劃推出SQL服務器的辦公室是在一個適當的數據服務器的迫切需要。目前很大程度上依賴於寬鬆的Excel和Access文件(補充了大量難以理解的VB代碼來完成數據處理)遍佈整個內部網絡。

我們需要兩件事情SQL服務器:
1.對於內部數據庫將要設計的前期,將持續進行
2.數據集的特設上傳從客戶機接收上捕獲數據,我們再分析

我是這個辦公室裏唯一熟悉SQL的人。我將不得不訓練其他5或6人使用它。

現在,我的問題是這樣的:你們如何設置數據庫,以便使用Management Studio輕鬆識別存儲的內容?更確切地說,如果這是一個windows文件系統,它看起來像這樣:

c:\ client work \ client 1 \ piece of work 1(db with 10 tables)\
c:\ client work \客戶端1 \工作2(分貝與8表)\
c:\客戶端工作\客戶端1 \工作3(db與7表)\

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

簡而言之,我需要通過內部和客戶端的工作進行可視化拆分。我需要由不同的客戶分擔客戶的工作。對於每個客戶,我需要分解出不同的不同工作集。 (內部工作遵循類似的模式)。

的解決方案,我所知道的:

  • 運行多個數據服務器(例如一個內部,一個用於客戶端的工作)。不知道這樣做的缺點是什麼,雖然
  • 分配模式,以表

我很想聽聽您的建議!

回答

2

您的管理SQL Server的組織工具實例,數據庫和模式:

一臺服務器可以運行多個實例。一個實例在同一臺機器上基本上是一個完全獨立的服務器實例。

一個實例可以管理多個數據庫。數據庫是完整性的標準邊界 - 您(通常)備份整個數據庫,參照完整性限制在同一數據庫中的對象之間等。

每個數據庫都可以包含多個模式,這些模式允許您組織碼。

所有這些「容器」都以某種方式與安全相關。

我建議您首先獲取組織數據和流程清單,以便了解您正在處理的數據,使用數據的方式和方式 - 特別關注公開或協作的數據(某些人使用的數據一起),並且需要進行分區訪問(僅由特定角色使用)。 SQL Server並不是一個非常好的存儲非結構化數據的地方 - 例如,我不會將其視爲一個簡單的文件服務器替換。

從那裏開始爲用戶定義角色。擁有角色比向個人用戶分配權利要好得多。它記錄了訪問的語義含義(任何執行此角色的人都需要此訪問權限,而不是用戶的身份 - 約翰和凱特需要訪問權限 - 這告訴你爲什麼他們需要訪問權限)。確保角色足夠細緻。像AccountsReceivable這樣的部門角色不如PaymentApprover或InvoiceProcessor或AccountsSupervisor有用。用戶可以扮演多種角色 - 這將爲您的基礎設施提供更多的自我記錄功能,並減少很多安全漏洞和麻煩。

這應該有助於定義您需要哪些容器以及從那裏授予和指導數據基礎架構的訪問權限。至於讓用戶直接訪問,我與Randy Minder一樣,SQL Server最多隻是一個專家用戶工具。如果他們熟悉Access,一個好的選擇是讓他們在SQL Server中使用精心設計和選擇的視圖,直到他們準備採用更系統的數據工程方法。

1

IMO,你的數據庫的用戶不應該知道或關心你的數據庫在哪裏或如何設置。除非他們訓練有素的SQL,否則他們不應該被授予訪問SSMS的權限。這是一場等待發生的災難。您應該創建允許用戶訪問他們所需數據的應用程序和/或報告。這樣他們不關心數據的位置,也不需要知道。