sqlserver裏服務器角色,服務器登錄名,數據庫用戶,數據庫角色,數據庫架構的理解

 先說sqlserver裏面的數據庫級別設置:

服務器級 -> 數據庫級 -> 架構級 - > 數據對象級,比如說:Server.DataBase1.dbo.Table1;這裏的意思就是Table1這個表屬於dbo這個架構

,dbo這個架構屬於DataBase1這個數據庫,DataBase1這個數據庫屬於Server這個服務器。裏面的架構其實就是一個容器,好像就是面向對象裏面的

命名空間,一個用戶可以擁有多個架構,但是不能對沒有擁有的架構進行操作。一個數據庫角色,是對不同架構裏面數據對象的權限組織,也有可能涉及到

多個架構,當某一個用戶被轉換成一種數據庫角色的時候,假如這個用戶本身不擁有某一個架構而該數據庫角色擁有,那它當它對那個架構進行操作的時候就會出錯。

角色,角色意味着一種身份,在數據庫服務器裏是對一系列權限的組織。

服務器登錄名,指有權限登錄到某服務器的用戶,可以在有權限的情況下創建新的登錄名,超級管理員的登錄名是sa

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

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

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

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

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

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

登錄名與用戶在服務器級是一對多的,而在數據庫裏是一對一的。比如說Server這個服務器有4個數據庫,DB1,DB2,DB3,DB4,每個數據庫都有一個用戶USER1,USER2,USER3,USER,在創建一個登錄名my的時候可以通過用戶映射的操作,爲這個登錄名在每一個具體的數據庫中指定用戶,比如可以如下指定my在DB1中的用戶是USER1,它是在使用數據庫的時候是唯一的,my在不能再DB1中切換用戶,除非重新指定它對DB1數據庫的用戶映射。

用戶一般是受權限管理的,在新建一個用戶的時候是這樣的:

需要指定它的登錄名,這也是映射操作的一部分,同時可以指定它的默認架構,如不指定就是dbo,也可以指定它擁有的其它架構和角色成員,不過沒有默認數據庫角色。

下面看看新建一個角色:

在新建的時候可以指定這個角色擁有那些架構,但是這些結構必須是這個數據庫裏面的,默認架構爲當前用戶使用的架構,比如當前用戶的架構是dbo,則在角上權限定義時所使用的默認架構就是dbo,當然也可以指定其它的架構。

 

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