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

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Analytics Platform System (PDW)

注意

使用 Transact-SQL 的開始使用查詢路徑提供更深入的內容,以及實際範例。

授與使用者存取資料庫的權限包括三個步驟。 首先,請建立登入。 此登入可讓使用者連線到 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_nameFROM 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 陳述式也可以用來授與其他權限,例如建立資料表的權限。

接下來的步驟

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

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