第 2 課:設定資料庫物件的權限

適用于:yesSQL Server (所有支援的版本) Yes Azure SQL Database Azure SQL 受控執行個體 Yesyes Analytics Platform System (PDW)

授與使用者存取資料庫的權限包括三個步驟。 首先,請建立登入。 登入可讓使用者連線到SQL Server 資料庫引擎。 接著,請將登入設定為指定之資料庫的使用者。 最後,請授與該使用者存取資料庫物件的權限。 這一課會示範這三個步驟,並且說明如何將檢視和預存程序建立為物件。

注意

本課程會用到在課程 1 - 建立資料庫物件中建立的物件。 在繼續課程 2 之前,請先完成課程 1。

必要條件

若要完成本教學課程,您需要 SQL Server Management Studio 和 SQL Server 執行個體存取權。

若您沒有 SQL Server 執行個體存取權,請從下列連結選取您的平台。 若您選擇 SQL 驗證,請使用您的 SQL Server 登入認證。

我們會持續聽取您的意見: 如果您發現本文中有過時或不正確的內容 (例如步驟或程式碼範例),請告訴我們。 您可以按一下此頁面底部 [意見反應] 區段中的 [本頁] 按鈕。 我們通常會在隔天閱讀有關 SQL 的每一項意見反應。 謝謝。

建立登入

若要存取資料庫引擎,使用者需要登入。 登入可以代表使用者的身分識別為Windows帳戶或Windows群組的成員,或者登入可以是SQL Server登入,該登入只存在於SQL Server中。 請盡可能使用「Windows 驗證」。

根據預設,您電腦上的系統管理員可以完整存取SQL Server。 在這一課中,我們希望有權限較低的使用者,因此您將會在電腦上建立新的本機「Windows 驗證」帳戶。 若要執行此作業,您必須是電腦的管理員。 然後,您會將該新使用者存取權授與SQL Server。

建立新的 Windows 帳戶

  1. 依序按一下 [開始] 和 [執行],在 [開啟] 方塊中輸入 %SystemRoot%\system32\compmgmt.msc /s,然後按一下 [確定] 開啟 [電腦管理] 程式。
  2. 在 [系統工具] 底下,展開 [本機使用者和群組],以滑鼠右鍵按一下 [使用者],然後按一下 [新增使用者]
  3. 在 [使用者名稱] 方塊中輸入 Mary
  4. 在 [密碼] 和 [確認密碼] 方塊中輸入強式密碼,然後按一下 [建立],建立新的本機 Windows 使用者。

建立 SQL 登入

在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 陳述式。

注意

如果資料表、檢視和預存程序並不是由相同的結構描述所擁有,則授與權限的過程將會更加複雜。

關於 GRANT

您必須具有 EXECUTE 權限,才能執行預存程序。 若要存取和變更資料,則必須具有 SELECT、INSERT、UPDATE 和 DELETE 權限。 GRANT 陳述式也可以用來授與其他權限,例如建立資料表的權限。

接下來的步驟

下一篇文章會教您如何移除您在其他課程中建立的資料庫物件。

請前往下一篇文章以深入了解: