第 2 課:設定資料庫物件的權限
適用於:Microsoft Fabric 中的 SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Analytics Platform System (PDW)
SQL Database
注意
使用 Transact-SQL 開始查詢學習路徑提供更深入的內容,以及實際範例。
授與使用者存取資料庫的權限包括三個步驟。 首先,請建立登入。 此登入可讓使用者連線到 SQL Server 資料庫引擎。 接著,請將登入設定為指定之資料庫的使用者。 最後,請授與該使用者存取資料庫物件的權限。 這一課會示範這三個步驟,並且說明如何將檢視和預存程序建立為物件。
注意
本課程會用到在課程 1 - 建立資料庫物件中建立的物件。 在繼續課程 2 之前,請先完成課程 1。
若要完成本教學課程,您需要 SQL Server Management Studio 和 SQL Server 執行個體存取權。
若您沒有 SQL Server 執行個體存取權,請從下列連結選取您的平台。 若您選擇 SQL 驗證,請使用您的 SQL Server 登入認證。
- Windows:下載 SQL Server 2022 Developer Edition。
- Linux:在容器下載 SQL Server 2022。
我們會持續聽取您的意見: 如果您發現本文中有過時或不正確的內容 (例如步驟或程式碼範例),請告訴我們。 您可以按一下此頁面底部 [意見反應] 區段中的 [本頁] 按鈕。 我們通常會在隔天閱讀有關 SQL 的每一項意見反應。 謝謝。
若要存取資料庫引擎,使用者需要登入。 此登入可以用 Windows 帳戶或 Windows 群組的成員來代表使用者的身分識別,也可以是只存在於 SQL Server 中的 SQL Server 登入。 請盡可能使用「Windows 驗證」。
根據預設,電腦的系統管理員具有 SQL Server 的完整存取權。 在這一課中,我們希望有權限較低的使用者,因此您將會在電腦上建立新的本機「Windows 驗證」帳戶。 若要執行此作業,您必須是電腦的管理員。 然後,您會授與該新使用者對 SQL Server 的存取權。
- 依序選取 [開始] 和 [執行],在 [開啟] 方塊中鍵入
%SystemRoot%\system32\compmgmt.msc /s
,然後選取 [確定] 以開啟 [電腦管理] 程式。 - 在 [系統工具] 底下,展開 [本機使用者和群組],以滑鼠右鍵按一下 [使用者],然後選取 [新增使用者]。
- 在 [使用者名稱] 方塊中輸入 Mary。
- 在 [密碼] 和 [確認密碼] 方塊中鍵入強式密碼,然後選取 [建立] 以建立新的本機 Windows 使用者。
在 SQL Server Management Studio 的 [查詢編輯器] 視窗中,鍵入並執行下列程式碼,並以您的電腦名稱取代 computer_name
。 FROM WINDOWS
表示 Windows 會驗證使用者。 選擇性DEFAULT_DATABASE
自變數會Mary
TestData
連接到資料庫,除非 連接字串 指出另一個資料庫。 這個陳述式採用分號作為 Transact-SQL 陳述式的選擇性結束符號。
CREATE LOGIN [computer_name\Mary]
FROM WINDOWS
WITH DEFAULT_DATABASE = [TestData];
GO
這會授權使用者名稱 Mary
在經過電腦驗證之後,可以存取此 SQL Server 執行個體。 如果電腦上有多個 SQL Server 執行個體,則您必須在 Mary
需要存取的每個執行個體上建立登入。
注意
由於 Mary
不是網域帳戶,因此這個使用者名稱只能在這部電腦上進行驗證。
帳戶 Mary
現在可存取此 SQL Server 實例,但無權存取資料庫。 除非您將帳戶授權為資料庫用戶,否則帳戶甚至無法存取預設資料庫 TestData
。
若要授與 Mary
存取權,請切換至 TestData
資料庫,然後使用 CREATE USER 語句將登入對應至名為 Mary
的使用者。
輸入並執行下列陳述式 (以您的電腦名稱取代 computer_name
),為 Mary
授與 TestData
資料庫的存取權。
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
現在,Mary 具有 SQL Server 和 TestData
資料庫的存取權。
身為系統管理員,您可以從 Products
資料表和 vw_Names
檢視執行 SELECT,也可以執行 pr_Names
程序;但 Mary 則無權這麼做。 若要授與 Mary 必要的權限,請使用 GRANT 陳述式。
執行下列陳述式,讓 Mary
具有 EXECUTE
預存程序的 pr_Names
權限。
GRANT EXECUTE ON pr_Names TO Mary;
GO
在這個狀況中,Mary 只能使用預存程序來存取 Products
資料表。 如果您希望 Mary 能夠在檢視中執行 SELECT 陳述式,則必須也要執行 GRANT SELECT ON vw_Names TO Mary
。 若要移除資料庫物件的存取權,請使用 REVOKE 陳述式。
注意
如果資料表、檢視和預存程序並不是由相同的結構描述所擁有,則授與權限的過程將會更加複雜。
您必須具有 EXECUTE 權限,才能執行預存程序。 若要存取和變更資料,則必須具有 SELECT、INSERT、UPDATE 和 DELETE 權限。 GRANT 陳述式也可以用來授與其他權限,例如建立資料表的權限。
下一篇文章會教您如何移除您在其他課程中建立的資料庫物件。
請前往下一篇文章以深入了解: