程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> Sql Server 2005中的架構(Schema)、用戶(User)、角色(Role)和登錄(Login)(二)

Sql Server 2005中的架構(Schema)、用戶(User)、角色(Role)和登錄(Login)(二)

編輯:關於SqlServer

在第一節中,我們了解了架構的意義。在第二節的開始,我們暫時忘記架構這個東西。我們假設我們的數據庫只有數據庫對象。

      李老板開了一個小公司,公司有個倉庫,堆放了一些貨物,由於倉庫小,為了節約成本,這個倉庫根本沒有鎖。只要知道倉庫在哪裡,就可以去取貨。這種情況對應數據庫來說,就是只要我知道數據庫名和表名,我就可以對它進行操作。這對程序員來說當然是最方便了。這就是數據庫的第一階段:無權限管理階段。假如大家用過Win3.X,那它們基本就是無權限管理階段。這下小偷就爽翻了。

      最近倉庫裡的東西老是不翼而飛。李老板才明白,就算是員工都是自覺的,但是別的人也可以拿走裡面的貨物,怎麼辦呢?老板一咬牙,花一百塊錢買了一把鎖!並且只給少數幾個人配鑰匙。這下東西被別的公司的人拿走的情況基本杜絕了。對於數據庫來說,相當於把人分成了兩種,一種授權用戶,一種未授權用戶。這時,數據庫就有了用戶的概念,但是它只有一個用戶,就是有鑰匙的人,它只對有鑰匙的人開放。這就是數據庫權限管理的第二階段:上鎖階段或者單用戶管理階段。


      好景不長,老板發現倉庫的東西還是經常少。明明都是有鑰匙的人才能進去呀。但是,誰拿了多少,根本沒辦法查出來。老板猜測原因有二:一,有些人拿了不該拿的東西。二,有些人偷偷的去配了鑰匙。老板一咬牙,沒收所有的鑰匙。花800塊一個月雇個倉庫管理員,每個進倉庫拿東西的人都要登記。李老板還給給倉庫管理員一個清單,誰可以拿什麼東西,清單如下:

姓名

貨物1

貨物2

貨物3

貨物4

貨物5

張三

Y

Y

N

N

N

李四

Y

Y

Y

N

N

王五

Y

Y

Y

Y

Y

趙六

N

Y

Y

Y

Y

      這時的管理上了一個新台階,稱為用戶-權限管理階段。公司再也沒發生丟東西的現象。老板非常得意自己英明的決定。這就非常類似Windows現在的用戶權限管理了。

 

      也許有人細心的發現,你說的不對,Windows權限管理中有角色呀!沒錯,為什麼要有角色呢?沒有角色不是照樣不丟東西嗎?這個問題稍後再談。

      話說過了一年,李老板的生意越做越大,倉庫裡的東西也越來越多,最近張三反應,去倉庫取貨老是要排隊,而且經常要等很久才能取到貨,李老板心想,取貨的人一共就這幾個人,還要排隊,豈有此理!把倉庫保管員叫過來!保管員早有准備,遞給李老板一份最新的清單:

 

姓名

貨物1

貨物2

貨物3

貨物......

貨物1000

張三

Y

Y

N

N

N

李四

Y

Y

Y

N

N

王五

Y

Y

Y

Y

Y

趙六

N

Y

Y

Y

Y

      每次來一個人取貨,保管員都要根據這張清單對一千個貨物,幸虧取貨的人少,如果再多幾個人的話,估計就要在倉庫門口打架了。李老板又開始琢磨了。現在東西是不會丟了,但是每次取貨慢成這樣,等我貨再多到一萬種,我這生意還能做嗎?該怎麼才能提高倉庫管理員的效率呢?這時倉庫管理員早看出李老板的心思,色咪咪看著李老板著說:“老板,再招一個管理員吧,我老婆剛好生完孩子在家裡待業。。。”。李老板一聽就火了:你當招人不用花錢啊!有了!我買5個貨架就搞定了!過兩天我告訴你新的管理辦法,你老婆還是在家多休息幾天吧。

      過了幾天,老板把5個貨架采購回來,放進倉庫,然後給管理員一份管理手冊。新的管理手冊如下:

手冊第一頁:貨架權限清單

姓名

貨架1

貨架2

貨架3

貨架4

貨架5

張三

Y

Y

N

N

N

李四

Y

Y

Y

N

N

王五

Y

Y

Y

Y

Y

趙六

N

Y

Y

Y

Y

 

 

貨物1

貨物2

貨物3

貨物4

貨物.......

貨架190

 手冊第三頁:2號貨架貨物清單 

貨物191

貨物192

貨物193

貨物194

貨物.......

貨架390

 第四頁,第五頁省略

      每次貨物入庫的時候,根據貨架貨物清單放到相應的貨架上,然後貼上標簽。出庫的時候哦只要看貨架號碼就可以啦。

      看到這裡,也許有人恍然大悟,這不就是第一節講的“架構Schema”嗎?沒錯,現在我們終於知道,架構概念的引入就是為了解決數據庫對象太多不好管理的缺點。到現在為止,我們的數據庫管理就變成了用戶-架構-數據庫對象的模式了。

      在SQL Server2000中,用戶和架構是不分離的,到了2005才分離。其實2000中的用戶和架構概念就是給張三、李四分配固定的貨架。這是一種更簡單的管理方法。

姓名

張三的貨架

李四的貨架

王五的貨架

趙六的貨架

...的貨架

張三

Y

-

-

-

-

李四

-

Y

-

-

-

王五

-

-

Y

-

-

趙六

-

-

-

Y

-

       在李老板的英明領導下,他的小公司不斷壯大,人數增加到幾十人,張三李四等元老級人物還擔任了不同項目部門的主管。但是隨著公司的發展,新的麻煩又來考驗李老板的智商了,到底還會發生什麼危機的情況呢?請看第三節。角色。等待中

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved