(zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)
3.1 深入了解架構(Schema)
?? ? ?在進入李老板的故事之前,讓我們先對Sql Server2005中的架構做一個更深入的了解。
?? ? ?用戶(User)和架構(Schema)的關系
?
- 一個架構有且只有一個所有者Owner。
- 一個用戶可以擁有多個架構。
??? ? 這跟第二節中介紹的貨架權限清單有所出入,第二節中的例子是多對多的關系,而實際Sql Server是采用一對多的關系。這反而比較像是銀行賬戶。一個人可以有多個存折,但是一個存折只有一個用戶。
?
- 創建一個用戶,系統將自動創建一個同名的架構。
- 創建一個架構必須指定所有者,否則將默認為當前登陸用戶。
- 表屬于不同的架構也不能重名。
- 刪除一個用戶時,架構也會被刪除?
?? ? ?架構(Schema)相關的SQL
?? ? ?創建架構
?? ? CREATE?SCHEMA?[SchemaName]?AUTHORIZATION?[User]?? ? ?更改架構的所有者
?? ? ?刪除架構
?? ? ?數據庫設計與架構
?? ? ?架構的目的應該在于在同一數據庫中提供一種隔離機制。按照這種思路,以最典型的產供銷結構,我們可以這樣設計一個數據庫MyDatabase:
| 用戶 | 架構 | 表 | 表全稱 |
| 生產者 | 生產 | 表1 | 生產.表1 |
| 供應者 | 供應 | 表2 | 供應.表2 |
| 銷售者 | 銷售 | 表3 | 銷售.表3 |
| 用戶 | 架構 | 表 | 表全稱 |
| MyUser | MySchema | 表1 | MySchema.表1 |
| 表2 | MySchema.表2 | ||
| 表3 | MySchema.表3 |
?? ? ?這下總經理要看報表是沒問題了,但是這樣架構就形同虛設了。這也是為什么大家搞不清楚架構和用戶的關系的原因。假如一個架構可以有多個擁有者,那么就可以徹底解決這個問題。
?? ? ?有人要說了,但是好像我用dbo登陸以后,是可以操作不同架構的表啊,這是為什么呢?那是因為上面的討論是建立在沒有角色的基礎上的,要說清楚角色的問題,我們還是要回到李老板的故事。
3.2 人多不好管
1.大量的重復
2.工作調動
3.3 所有權與經營權
3.4 DB Role與App Role
3.5 數據庫設計與角色
轉載于:https://www.cnblogs.com/end/archive/2009/08/07/1541377.html
總結
以上是生活随笔為你收集整理的(zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unix下的crontab简介
- 下一篇: Log4Net ,.net和SQL Se