MS-SQL2005服務器登錄名、角色、數據庫用戶、角色、架構的關係

 

MS SQL2005對2000進行了很大的改進,而用戶關係這部分也變得相當複雜了,很多朋友都對此一知半解!下面,我將把我應用中總結的和大家分享下,先從概念入手,希望對不理解的朋友有點提示。

 

今天我們要說的包括服務器登錄名Server Login,服務器角色Server Role,數據庫用戶DB User,數據庫架構DB Schema,數據庫角色DB Role 。以上幾個名詞應該從服務器與數據庫來區分,服務器包含一到多個數據庫,其中:

服務器登錄名,指有權限登錄到某服務器的用戶;

服務器角色,指一組固定的服務器用戶,默認有9組;

  • 登錄名一定屬於某些角色,默認爲public
  • 服務器角色不容許更改
  • 登錄後也不一定有權限操作數據庫

數據庫用戶,指有權限能操作數據庫的用戶;

數據庫角色,指一組固定的有某些權限的數據庫角色;

數據庫架構,指數據庫對象的容器;

  • 數據庫用戶對應於服務器登錄名以便登錄者可以操作數據庫
  • 數據庫角色可以添加,可以定製不同權限  
  • 數據庫架構,類似於數據庫對象的命名空間,用戶通過架構訪問數據庫對象

而通過下圖可以讓這些概念清晰一些:

    

即:

  1. 服務器登錄名屬於某組服務器角色;
  2. 服務器登錄名需要於數據庫的用戶映射後才擁有操作數據庫的權限
  3. 數據庫用戶屬於某組數據庫角色以獲取操作數據庫的權限
  4. 數據庫角色擁有對應的數據庫架構,數據庫用戶可以通過角色直接擁有架構
  5. 數據庫用戶有默認架構,寫SQL語句可以直接以“對象名”訪問
  6. 非默認架構則要以“架構名.對象名”訪問

因此,新建一個非SA賬戶並建立數據庫的過程可以如下:

1、新建登錄名Login1

2、新建數據庫DB1

 

3、新建DB1的架構Schema1

 

4、新建BD1的用戶User1,登錄名對應Login1,默認架構選擇Schema1,角色選擇db_owner

 

5、在登錄名Login1的屬性窗口裏選擇“用戶映射”,勾選DB1,在用戶裏填寫User1,默認架構選擇"Schema1"

 

6、至此,新建表名會是Schema1.Table1,其他對象也如此

 

 

7、當然還可以新建其他架構的對象Schema2,只有User1擁有該架構,一樣可以訪問,如Schema2.Table2

值得注意的是,當爲登錄映射數據庫用戶的時候,多個數據庫可以有相同名稱的用戶,而單獨爲某個數據庫新建的用戶,如User1,則在其他數據庫裏不允許同名。

以上就是全文,希望對大家理解並創建數據庫有些幫助,也請大家多多交流。

轉自:瀟瀟雨斜 - 博客園

本文地址:http://www.cnblogs.com/ATree/archive/2011/03/08/SQL_Server_2005_Login_Role_User.html

後續瀏覽:http://blog.csdn.net/hbu_dcf/archive/2009/02/03/3859592.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章