2019年七乐彩走势图南方双彩
科技行者

行者學院 轉型私董會 科技行者專題報道 網紅大戰科技行者

知識庫

知識庫 安全導航

知識庫分類索引
技術分類
廠商分類

SQL Azure

SQL Azure (舊稱 SQL Server Data Services 或 SQL Services) 是由微軟SQL Server 2008為主,建構在Windows Azure云操作系統之上,運行云計算 (Cloud Computing)的關系數據庫服務 (Database as a Service),是一種云存儲(Cloud Storage)的實現,提供網絡型的應用程序數據存儲的服務。

基礎架構

SQL Azure的基底是SQL Server 2008,不過它是一個特殊設計的SQL Server 2008,并且以Windows Azure為基座平臺,配合Windows Azure的特性,SQL Azure也是一種分散在許多實體基礎架構(Physical Infrastucture)與其內部許多虛擬服務器(Virtual Servers)的一種云存儲服務,外部應用程序或服務可以不用在乎數據庫實際存儲在哪里,就可以利用SQL Azure顯露的SQL Server Fabric殼層服務以接受外部連接,并且在內部使用連接繞送 (connection routing) 的方式,讓連接可以對應到正確的服務器,而且數據庫是在云中由多個服務器來提供服務,每一次連接所提供服務的服務器可能會不同,因此也可以保證云存儲的高度可用性(High availability)。
SQL Azure 架構在數據中心可分為三個部份:
1. 服務提供層 (Service Layer):
服務提供層是 SQL Azure 顯露在客戶端前面的服務接口 (Facade 模式),負責接取所有向 SQL Azure 提交要求的 TDS over SSL 連接與指令,當連接進入 SQL Azure 時,SQL Azure Load Balancer 會分派連接到不同的 SQL Azure Gateway 中。SQL Azure Gateway系負責處理 TDS 連接,管理連接層安全性 (connection-level security) 以及解析指令是否有內含潛在威脅的指令,再交由連接管理員 (Connection Manager) 將連接分派到位于平臺提供層內不同的 SQL Azure 數據庫服務器中進行處理,SQL Azure Gateway 也會管理對 SQL Azure 的連接,以避免可能會封鎖住服務器的連接 (例如過長的查詢或過長的數據庫交易等)。
2. 平臺提供層 (Platform Layer):
平臺提供層則是以 Windows Azure Computes 的虛擬機簇 (Cluster),每臺虛擬機都安裝有 SQL Server 2008 以及管理一定數量的數據庫,通常一份數據庫會分散到三至五臺的 SQL Server VM 中,而每臺 SQL Server VM 也安裝了 SQL Azure Fabric 中控軟件,并通過 SQL Azure Fabric 與 SQL Azure Gateway 的管控下,所有對單一數據庫的連接都不一定會持續連入同一臺 SQL Server VM 中。SQL Server VM 內也安裝了 SQL Azure Management Service,它會負責對每個數據庫間的數據復寫工作,以保障 SQL Azure 的基本高可用性要求。每臺 SQL Server VM 內的 SQL Azure Fabric 和 Management Service 都會彼此交換健康與監控信息等,以保持整體服務的健康與可監控性。
3. 基礎建設層 (Infrastructure Layer):
基礎建設層由 Windows Azure Computes 以及其高度可擴充性的運算與網絡基礎架構來組成,以支持 SQL Azure 所需的高可用性以及高擴充性等云特色。

供應模型

SQL Azure 服務對外的供應模型 (Provisioning Model) 的設計以平緩企業進入云的學習曲線為主要考量,因此 SQL Azure 對外提供的是一臺邏輯服務器 (Logical Server),此服務器是由 SQL Azure Gateway 所顯露,每一個 Windows Azure 的帳戶都可以創建一臺 SQL Azure Server,就像在本地的 SQL Server 運行個體一樣,但這個運行個體是在云上運行且具有高可用性等特征的數據庫服務器。
每臺 SQL Azure Server 都具有下列內容:
DNS 名稱,客戶端應用程序要使用這個 DNS 名稱連入數據庫,格式為 [serverid].database.windows.net。
master 數據庫,此數據庫會存放登錄信息 (logins),服務器角色以及管理服務器所必要的動態管理查看表 (Dynamic Management View)。
SQL Azure 防火墻,用來管理連入 SQL Azure Server 的連接來源。
用戶數據庫,每個數據庫都有不同的計費標準,大小由 1GB 到 50GB 不等。一臺 SQL Azure Server 可以有多個用戶數據庫。
客戶端只要可以支持 TDS (Tabular Data Stream) over SSL,即可連接與訪問 SQL Azure Server 的數據庫資源,這表示像ODBC、ADO.NET或JDBC的 SQL Server 最新版驅動程序或SQL Native Client Library都可以連接到SQL Azure Server。

Transact-SQL的支持

作為SQL Server版本Transact-SQL的子集,不是所有的功能在SQL Azure上都有被支持,由于實體服務器架構以及安全性的問題,許多分布式的查詢法以及常用的數據庫復制法都沒有辦法被SQL Azure支持,而在SQL Server 2005開始加入的SQL CLR能力也無法在SQL Azure上支持(因為它必須要掛載在SQL Azure實體服務器上,但客戶端通常無法知道當下連到的服務器是否為有安裝SQL CLR組件的那一臺)。

安全性

SQL Azure 的安全性有兩個部份,一個是管理傳輸層次安全性的防火墻,一個是管理訪問控制的基本安全功能。
防火墻
每個 SQL Azure Server 都會有自己的防火墻 (Firewall) 設置,管理人員可以自由設置下列不同的客戶端來源模型:
只允許云應用程序訪問 SQL Azure Server,網段設為 0.0.0.0-0.0.0.0
單一或多重網址 (address)。
單一或多重網段 (segment)。
SQL Azure Server 的防火墻設置會存儲在 SQL Azure Gateway 中,作為管控客戶端連接之用。

基本安全功能
SQL Azure Server會有兩種安全組群:
服務器角色:有 dbmanager 以及 loginmanager 兩種。
dbmanager:賦與用戶可以創建數據庫(即CREATE DATABASE指令)的權利。
loginmanager:賦與用戶可以創建登錄帳戶(即CREATE LOGIN指令)的權利。
數據庫角色:與安裝在本機或服務器上版本的SQL Server相同。
SQL Azure Server目前只支持使用SQL驗證(SQL Authentication)的安全驗證方式,以往的Windows驗證在SQL Azure上不支持。而在SQL Azure Server創建時,除了master數據庫以外,還會再多創建一個具有SQL Server的sa帳戶相等權力的帳戶,供用戶操作SQL Azure Server用,此帳戶稱為服務器級主帳戶(server-level principal),基于數據庫的安全,管理人員必須要在 SQL Azure Server 中再創建一個或多個登錄帳戶后,再授權給數據庫,客戶端應用程序不宜使用服務器級主帳戶來訪問 SQL Azure Server 與數據庫。

限制
SQL Azure 基于架構上的設計與天生的限制,SQL Azure Server的帳戶與安全控制會有下列限制[6]:
只有服務器級主帳戶才具有變更密碼的能力, loginmanager 組群的成員帳戶不具變更密碼的權限,同時如果要訪問master數據庫,則該用戶帳戶必須要被對應到master數據庫,同時服務器級主帳戶是不可以變更或刪除的,同時只要是被設為服務器級主帳戶的用戶,就算沒有給予 dbmanager 或 loginmanager ,仍然可以創建數據庫并管理用戶。
只要是登錄服務器,一律以master為默認數據庫,US-English為默認的登錄語系。

若要運行CREATE/ALTER/DROP LOGIN或CREATE/DROP DATABASE,必須要先連至master數據庫。
當要在ADO.NET運行前述指令時,不可以使用參數化命令,而且前述命令于每個SQL批量也只能有一個(且是唯一的一個)。
當要運行CREATE USER配合FOR/FROM LOGIN選項時,它也必須是SQL批量中唯一的一個。
當要運行ALTER USER配合WITH LOGIN選項時,它也必須是SQL批量中唯一的一個。
只有服務器級主帳戶以及被賦與 dbmanager 角色的成員才有運行CREATE DATABASE與DROP DATABASE的權力。
只有服務器級主帳戶以及被賦與 loginmanager 角色的成員才有運行CREATE LOGIN、ALTER LOGIN與DROP DATABASE的權力。
若想訪問master數據庫,則該帳戶必須要對應到master數據庫。

相關新聞
SQL Azure相關廠商

分隔

2019年七乐彩走势图南方双彩 竞彩足球预测软件 澳洲幸运5历史开奖 中国麻将 福彩3d17年003期开奖结果 蝌蚪网站多少 时时走势图五星综合 赛车彩票开奖 七星彩有什么软件 贵州11选五前三遗漏 体彩排列三走势图表《专业版》