SQL SERVER伺服器登錄名、角色、資料庫用戶、角色、架構的關係

来源:https://www.cnblogs.com/bandaobudaoweng/archive/2018/11/14/9958126.html
-Advertisement-
Play Games

原創鏈接:https://www.cnblogs.com/junfly/articles/2798023.html SQL SERVER 基礎教程中關於伺服器登錄名、伺服器角色、資料庫用戶、資料庫角色、架構的關係。 我們要說的包括伺服器登錄名Server Login,伺服器角色Server Role ...


原創鏈接: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,則在其他資料庫里不允許同名。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 #!/bin/bash 2 # coding: utf-8 3 # Copyright (c) 2018 4 5 set -e #返回值為非0時,退出腳本 6 7 echo "0. 系統的一些配置" 8 setenforce 0 || true 9 systemctl stop iptables... ...
  • 我一直比較推薦一些Linux新手使用Deepin Linux,因為我認為這種儘量的follow Windows的系統至少對於新手來說是比較的友好的,而且預裝了QQ 火狐瀏覽器中文版,甚至還移植了像360安全瀏覽器這些,自帶的應用商店等等,去掉了很多至少對於一般的Linux用戶,初學者這些用不到的組件 ...
  • 一、Tomcat安裝 1.下載jdk,Tomcat,解壓到/usr/local/ 2.配置jdk環境:# vim /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_171 export PATH=$JAVA_HOME/bin:$PATH export ...
  • Linux使用MySQL Yum存儲庫上安裝MySQL 5.6,適用於Oracle Linux,Red Hat Enterprise Linux和CentOS系統。 一、全新安裝MySQL 1、添加MySQL Yum存儲庫 將MySQL Yum存儲庫添加到系統的存儲庫列表中。這是一次性操作,可以通過 ...
  • --資料庫操作前的準備-- 創建資料庫-- create database python_test_1 charset=utf8; -- 使用資料庫-- use python_test_1; -- students表-- create table students(-- id int unsigne ...
  • 一 . MQ:message queue 消息隊列的作用: 1 通信解耦 2 高峰限流 原理分析: 一開始,認證系統是強耦合的,A系統傳遞認證系統消息接收計算結果的過程中 1 傳給認證系統 2 認證系統計算 3 返回計算結果 4 讀取A系統邏輯 只要當前計算沒有完成,對於認證系統來講消耗線程資源.並 ...
  • 一. 字元串對象編碼 Redis中字元串可以存儲3種類型,分別是位元組串(byte string)、整數、浮點數。在上章節中講到字元串對象的編碼可以是int, raw,embstr。 如果一個字元串對象保存的是整數值,那麼對象RedisObject結構的ptr 屬性裡面將void*轉換成long,字元 ...
  • 最近在調研關聯數據的一些東西,需要用到rdf資料庫,所以接觸了virtuoso資料庫。安裝的坑其實並不多,之前在windows 10上安過一次。這次在ubuntu 18.04上安裝一下,其他的linux發行版安裝的流程也差不多。 virtuoso資料庫的下載與使用 開源版本的virtuoso資料庫可 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...