Sql-Server

SQL Azure 池中每個數據庫的安全性

  • April 8, 2017

我是 SQL Azure 的新手,需要計劃移動我們的一些 SQL Server 數據庫。

我們有一個 SQL Server Azure 池,最多可以容納 50 個數據庫。

我需要將某些使用者限制在池中的特定數據庫中。

例如,使用者 1 只能訪問數據庫 Northwind - 因此當他使用 SSMS 連接到 Azure 池時,這是他可以看到的唯一數據庫(他看不到其他 49 個)

是否可以設置 - 或者如果您可以訪問實例(整個池) - 那麼您將可以訪問該池中的所有數據庫?

這是否意味著我們需要基於安全性將每個數據庫移動到其自己的實例?這也意味著無論在應用程序 web.config 中使用什麼 SQL 使用者名/密碼,配置中的使用者都可以訪問 SQL 實例中的所有數據庫(伺服器名)

我正在查看 Pluralsight 上的 SQL Azure 培訓,發現有基於 IP 的數據庫級防火牆——在這種情況下,我們有多個開發人員——每個開發人員都有相同的 IP——但特定的開發人員必須只能訪問特定的數據庫。因此,實例上每個數據庫的一條 IP 規則將不起作用,因為未評估使用者名。

您可以限制每個數據庫的使用者。我將在這裡使用 sql 身份驗證進行解釋,如果您設置了 AD,您也可以這樣做。

我有 3 個數據庫,“taiobmdjamshed”是伺服器管理員,可以訪問所有數據庫。

在此處輸入圖像描述

我使用 db_owner 權限創建 security1 登錄到 security1 數據庫和 master 數據庫中的使用者。

CREATE LOGIN security1 
   WITH PASSWORD = 'S<<MM12345!@@!' 
GO

在 master 數據庫中創建一個使用者。

CREATE USER security1
   FOR LOGIN security1
   WITH DEFAULT_SCHEMA = dbo
GO

在 security1 數據庫中創建一個使用者並使其成為 db_owner 角色的成員。

CREATE USER security1
   FOR LOGIN security1
   WITH DEFAULT_SCHEMA = dbo
GO

-- Add user to the database owner role
EXEC sp_addrolemember N'db_owner', N'security1'
GO

如果使用 security1 登錄連接到伺服器並嘗試訪問 security2 數據庫,則會發生這種情況,因為 security1 登錄在 security2 數據庫中沒有相應的使用者或權限。

在此處輸入圖像描述 在此處輸入圖像描述

這個連結更詳細地解釋了。

引用自:https://dba.stackexchange.com/questions/169510