精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:大數據數據庫 → 正文

SQL Server 2016將有哪些功能改進?

責任編輯:editor005 |來源:企業網D1Net  2015-06-23 13:48:02 本文摘自:TechTarget中國

美國社會保障局正在籌劃搭建新的會員平臺。據了解,他們現在的平臺使用了SQLServer 2012和2014數據庫,而在新的平臺中,他們計劃使用微軟最新的SQL Server2016。

社保局的高級DBA BasitFarooq成為了SQL Server2016的首批測試用戶,他第一次聽說新版本發布的消息就是在微軟Ignite大會上。Farooq在第一時間就下載了CTP 2預覽版,并在過去的幾周當中對其中的新功能改進進行了體驗。

根據Farooq的說法,他最關注的一個新特性就是集成了PolyBase,也就是說現在可以直接使用T-SQL來將SQL Server 2016和Hadoop對接起來。“微軟在此之前沒有提供什么像樣的分析工具,在這個版本中,它以PolyBase的形式提供了連接到SQL Server的分析工具。有了PolyBase之后,像社保局這樣的用戶就不需要再另行采購了。而且你的數據是可以真正存儲在服務器上了(之前需要單獨的存儲)。”Farooq說。

另外一個值得關注的功能就是JSON與R語言的結合,這對于數據科學家來說是非常重要的,他們無需再將代碼從數據庫中導出來運行R程序了,現在可以直接對服務器數據使用R語言進行查詢。

作為DBA,Farooq認為最重要的一個新功能就是性能與安全性的提升。“我們所有會員的數據都需要嚴格保密,”他說:“因此我們需要特別高級的安全性功能,比如AlwaysEncrypted。目前在社保局,我們使用了一些第三方的安全工具,比如DbDefence數據加密軟件。而Always Encrypted可以讓數據始終處在加密的狀態,即使是在交易處理和查詢的階段。還沒有那個關系型數據庫產品能夠做到這一點。”

此外,SQL Server2016對內存數據的支持也實現了上百倍的提升,包括支持內存索引。Farooq表示,查詢數據存儲以及實時查詢統計可以讓所有DBA的工作輕松許多,現在你可以直接看到哪些查詢占用率了最多資源,然后根據使用情況進行數據庫設計規劃。

滿足客戶需求的SQL Server 2016

美國社保局不是立即擁抱SQL Server 2016的唯一一家客戶。隨著公開的預覽版本發布,許多SQL Server用戶都對它躍躍欲試。

數據庫咨詢顧問Denny Cherry的兩個客戶就在對SQL Server 2016進行測試,而他本人也與SQL Server 2016產品研發團隊有著密切的溝通,并參與到了早期的用戶計劃項目當中。由于比其他用戶更早地接觸到了SQL Server 2016,Cherry的一個客戶已經計劃將新版本數據庫投入到生產環境。

“由于微軟在之前打下了非常好的基礎,所以新版本可以非常快地在用戶群體之中鋪開。比如,微軟下了很多功夫來改進 T-SQL,高可用性以及內存OLTP這些核心功能。這些功能在之前的2012和2014版本當中就得到了很好的驗證。”Cherry說。

另外Cherry指出,SQL Server2016中特別值得關注的一個新特性是基于AlwaysOn高可用組的分布式交易報表,高可用組(Availability Group)替代了之前的數據庫鏡像。Cherry表示,微軟收到了大量用戶反饋,并將這些建議和想法融入到了SQL Server 2016的開發當中。“你可以看到,SQL Server 2016的許多新功能都是來自于用戶的聲音。”Cherry說。

SQL Server 2016:行級安全

對于SQL Server,一個常見的批評是,其安全模型只能識別表和列。用戶如果希望以行為單位應用安全規則,就需要使用存儲過程或表值函數來模擬,然后找一種方法,確保它們不會被繞開。在SQL Server 2016中,那不再是個問題。

實現

SQL Server 2016(及SQL Azure)中的 行級安全 基于一個專門設計的內聯表值函數。該函數要么返回一個只包含值1的行,要么不返回結果,這取決于用戶訪問的行是否是相關行。請看下面的函數:

CREATE FUNCTION Security.fn_securitypredicate(@SalesRep AS sysname) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS fn_securitypredicate_result WHERE @SalesRep = USER_NAME() OR USER_NAME() = 'Manager';

這段代碼的意思是,當前用戶必須是一名經理,或者是一名與記錄相關的推銷員。該函數沒有訪問行本身,但用戶可以使用參數傳入相應的列(比如,SalesRep)。例如:

CREATE SECURITY POLICY SalesFilter ADD FILTER PREDICATE Security.fn_securitypredicate(SalesRep) ON dbo.Sales WITH (STATE = ON);

實際效果

在使用行級安全時,用戶無法看到他們不能訪問的行。這就好像在訪問表時自動增加一個額外的、安全相關的where子句。

由于其作用像一個where子句,所以有一些局限。例如,如果用戶在那個列上使用了全文搜索索引,那么數據就可能泄露。此外,數據庫還可能遭受旁路攻擊。微軟寫道:

通過使用精心設計的查詢,可以導致信息泄露。例如,SELECT 1/(SALARY-100000) FROM PAYROLL WHERE NAME=’John Doe’ 會讓一個惡意用戶知道John Doe的工資是10萬美元。即使有一個恰當的安全謂詞阻止惡意用戶直接查詢其它人的工資,他也可以在查詢返回“除數為0”的異常時確定工資數額。

此外,信息也可能通過統計對象泄露。為了降低風險,查看受保護列統計信息的用戶必須是“表的所有者,或者是服務器固有角色sysadmin、數據庫固有角色db_owner或db_ddladmin的成員”。

中間層應用程序

截至目前,我們討論的場景是用戶以自己的身份登錄。在中間層應用程序中,所有人都共享同一個數據庫賬戶,實現行級安全需要額外的步驟。

對于中間層應用程序,推薦的設計模式是將 CONTEXT_INFO 的值設置為連接打開時用戶特定于應用程序的用戶id。然后,安全函數就可以引用CONTEXT_INFO的值。例如:

CREATE FUNCTION Security.fn_securitypredicate(@AppUserId int) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS fn_securitypredicate_result WHERE DATABASE_PRINCIPAL_ID() = DATABASE_PRINCIPAL_ID('dbo') -- 應用程序上下文 AND CONVERT(int, CONVERT(VARBINARY(4), CONTEXT_INFO())) = @AppUserId; -- AppUserId (int)占4個字節 GO CREATE SECURITY POLICY Security.SalesFilter ADD FILTER PREDICATE Security.fn_securitypredicate(AppUserId) ON dbo.Sales WITH (STATE = ON);

該方法的前提是,用戶無法執行任意SQL,因為那會讓他們可以隨意更改CONTEXT_INFO。

關鍵字:AlwaysOn內存數據Ignite

本文摘自:TechTarget中國

x SQL Server 2016將有哪些功能改進? 掃一掃
分享本文到朋友圈
當前位置:大數據數據庫 → 正文

SQL Server 2016將有哪些功能改進?

責任編輯:editor005 |來源:企業網D1Net  2015-06-23 13:48:02 本文摘自:TechTarget中國

美國社會保障局正在籌劃搭建新的會員平臺。據了解,他們現在的平臺使用了SQLServer 2012和2014數據庫,而在新的平臺中,他們計劃使用微軟最新的SQL Server2016。

社保局的高級DBA BasitFarooq成為了SQL Server2016的首批測試用戶,他第一次聽說新版本發布的消息就是在微軟Ignite大會上。Farooq在第一時間就下載了CTP 2預覽版,并在過去的幾周當中對其中的新功能改進進行了體驗。

根據Farooq的說法,他最關注的一個新特性就是集成了PolyBase,也就是說現在可以直接使用T-SQL來將SQL Server 2016和Hadoop對接起來。“微軟在此之前沒有提供什么像樣的分析工具,在這個版本中,它以PolyBase的形式提供了連接到SQL Server的分析工具。有了PolyBase之后,像社保局這樣的用戶就不需要再另行采購了。而且你的數據是可以真正存儲在服務器上了(之前需要單獨的存儲)。”Farooq說。

另外一個值得關注的功能就是JSON與R語言的結合,這對于數據科學家來說是非常重要的,他們無需再將代碼從數據庫中導出來運行R程序了,現在可以直接對服務器數據使用R語言進行查詢。

作為DBA,Farooq認為最重要的一個新功能就是性能與安全性的提升。“我們所有會員的數據都需要嚴格保密,”他說:“因此我們需要特別高級的安全性功能,比如AlwaysEncrypted。目前在社保局,我們使用了一些第三方的安全工具,比如DbDefence數據加密軟件。而Always Encrypted可以讓數據始終處在加密的狀態,即使是在交易處理和查詢的階段。還沒有那個關系型數據庫產品能夠做到這一點。”

此外,SQL Server2016對內存數據的支持也實現了上百倍的提升,包括支持內存索引。Farooq表示,查詢數據存儲以及實時查詢統計可以讓所有DBA的工作輕松許多,現在你可以直接看到哪些查詢占用率了最多資源,然后根據使用情況進行數據庫設計規劃。

滿足客戶需求的SQL Server 2016

美國社保局不是立即擁抱SQL Server 2016的唯一一家客戶。隨著公開的預覽版本發布,許多SQL Server用戶都對它躍躍欲試。

數據庫咨詢顧問Denny Cherry的兩個客戶就在對SQL Server 2016進行測試,而他本人也與SQL Server 2016產品研發團隊有著密切的溝通,并參與到了早期的用戶計劃項目當中。由于比其他用戶更早地接觸到了SQL Server 2016,Cherry的一個客戶已經計劃將新版本數據庫投入到生產環境。

“由于微軟在之前打下了非常好的基礎,所以新版本可以非常快地在用戶群體之中鋪開。比如,微軟下了很多功夫來改進 T-SQL,高可用性以及內存OLTP這些核心功能。這些功能在之前的2012和2014版本當中就得到了很好的驗證。”Cherry說。

另外Cherry指出,SQL Server2016中特別值得關注的一個新特性是基于AlwaysOn高可用組的分布式交易報表,高可用組(Availability Group)替代了之前的數據庫鏡像。Cherry表示,微軟收到了大量用戶反饋,并將這些建議和想法融入到了SQL Server 2016的開發當中。“你可以看到,SQL Server 2016的許多新功能都是來自于用戶的聲音。”Cherry說。

SQL Server 2016:行級安全

對于SQL Server,一個常見的批評是,其安全模型只能識別表和列。用戶如果希望以行為單位應用安全規則,就需要使用存儲過程或表值函數來模擬,然后找一種方法,確保它們不會被繞開。在SQL Server 2016中,那不再是個問題。

實現

SQL Server 2016(及SQL Azure)中的 行級安全 基于一個專門設計的內聯表值函數。該函數要么返回一個只包含值1的行,要么不返回結果,這取決于用戶訪問的行是否是相關行。請看下面的函數:

CREATE FUNCTION Security.fn_securitypredicate(@SalesRep AS sysname) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS fn_securitypredicate_result WHERE @SalesRep = USER_NAME() OR USER_NAME() = 'Manager';

這段代碼的意思是,當前用戶必須是一名經理,或者是一名與記錄相關的推銷員。該函數沒有訪問行本身,但用戶可以使用參數傳入相應的列(比如,SalesRep)。例如:

CREATE SECURITY POLICY SalesFilter ADD FILTER PREDICATE Security.fn_securitypredicate(SalesRep) ON dbo.Sales WITH (STATE = ON);

實際效果

在使用行級安全時,用戶無法看到他們不能訪問的行。這就好像在訪問表時自動增加一個額外的、安全相關的where子句。

由于其作用像一個where子句,所以有一些局限。例如,如果用戶在那個列上使用了全文搜索索引,那么數據就可能泄露。此外,數據庫還可能遭受旁路攻擊。微軟寫道:

通過使用精心設計的查詢,可以導致信息泄露。例如,SELECT 1/(SALARY-100000) FROM PAYROLL WHERE NAME=’John Doe’ 會讓一個惡意用戶知道John Doe的工資是10萬美元。即使有一個恰當的安全謂詞阻止惡意用戶直接查詢其它人的工資,他也可以在查詢返回“除數為0”的異常時確定工資數額。

此外,信息也可能通過統計對象泄露。為了降低風險,查看受保護列統計信息的用戶必須是“表的所有者,或者是服務器固有角色sysadmin、數據庫固有角色db_owner或db_ddladmin的成員”。

中間層應用程序

截至目前,我們討論的場景是用戶以自己的身份登錄。在中間層應用程序中,所有人都共享同一個數據庫賬戶,實現行級安全需要額外的步驟。

對于中間層應用程序,推薦的設計模式是將 CONTEXT_INFO 的值設置為連接打開時用戶特定于應用程序的用戶id。然后,安全函數就可以引用CONTEXT_INFO的值。例如:

CREATE FUNCTION Security.fn_securitypredicate(@AppUserId int) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS fn_securitypredicate_result WHERE DATABASE_PRINCIPAL_ID() = DATABASE_PRINCIPAL_ID('dbo') -- 應用程序上下文 AND CONVERT(int, CONVERT(VARBINARY(4), CONTEXT_INFO())) = @AppUserId; -- AppUserId (int)占4個字節 GO CREATE SECURITY POLICY Security.SalesFilter ADD FILTER PREDICATE Security.fn_securitypredicate(AppUserId) ON dbo.Sales WITH (STATE = ON);

該方法的前提是,用戶無法執行任意SQL,因為那會讓他們可以隨意更改CONTEXT_INFO。

關鍵字:AlwaysOn內存數據Ignite

本文摘自:TechTarget中國

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 高要市| 东方市| 诏安县| 武山县| 浠水县| 镇原县| 斗六市| 城市| 新郑市| 易门县| 仁寿县| 长岛县| 嫩江县| 固原市| 兴文县| 兴化市| 定边县| 望城县| 沈丘县| 循化| 兴海县| 大名县| 江安县| 盐山县| 宜都市| 天柱县| 瑞丽市| 福泉市| 拉萨市| 吉木萨尔县| 青川县| 福海县| 九寨沟县| 青阳县| 东乌珠穆沁旗| 肇东市| 宾川县| 江华| 娄底市| 伊宁市| 扶风县|