SQL SERVER服務器登錄名、角色、數據庫用戶、角色、架構的關系


原創鏈接:https://www.cnblogs.com/junfly/articles/2798023.html

 SQL SERVER 基礎教程中關於服務器登錄名、服務器角色、數據庫用戶、數據庫角色、架構的關系。

我們要說的包括服務器登錄名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

 

使用 SQL Server Management Studio 創建架構

  1. 在 SQL Server Management Studio 中,打開對象資源管理器,然后展開“數據庫”文件夾。

  2. 展開要在其中創建新數據庫架構的數據庫。

  3. 右鍵單擊“安全性”文件夾,指向“新建”,然后單擊“架構”。

  4. “常規”頁上的“架構名稱”框中輸入新架構的名稱。

  5. “架構所有者”框中,輸入要擁有該架構的數據庫用戶或角色的名稱。

  6.  單擊“確定”。

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

使用 SQL Server Management Studio 創建用戶

  1. 在 SQL Server Management Studio 中,打開對象資源管理器,然后展開“數據庫”文件夾。

  2. 展開要在其中創建新數據庫架構的數據庫。

  3. 右鍵單擊“安全性”文件夾,指向“新建”,然后單擊“用戶”。

  4. “常規”頁上的“用戶名”框中輸入”用戶名“。

  5. 選擇登錄名 如下圖
  6. 選擇默認的建構 如下圖
  7. 單擊“確定”。           

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM