自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 2016將有哪些功能改進(jìn)?

數(shù)據(jù)庫(kù) SQL Server
對(duì)于SQL Server,一個(gè)常見的批評(píng)是,其安全模型只能識(shí)別表和列。用戶如果希望以行為單位應(yīng)用安全規(guī)則,就需要使用存儲(chǔ)過(guò)程或表值函數(shù)來(lái)模擬,然后找一種方法,確保它們不會(huì)被繞開。在SQL Server 2016中,那不再是個(gè)問(wèn)題。

美國(guó)社會(huì)保障局正在籌劃搭建新的會(huì)員平臺(tái)。據(jù)了解,他們現(xiàn)在的平臺(tái)使用了SQLServer 2012和2014數(shù)據(jù)庫(kù),而在新的平臺(tái)中,他們計(jì)劃使用微軟最新的SQL Server2016。

社保局的高級(jí)DBA BasitFarooq成為了SQL Server2016的首批測(cè)試用戶,他第一次聽說(shuō)新版本發(fā)布的消息就是在微軟Ignite大會(huì)上。Farooq在第一時(shí)間就下載了CTP 2預(yù)覽版,并在過(guò)去的幾周當(dāng)中對(duì)其中的新功能改進(jìn)進(jìn)行了體驗(yàn)。

根據(jù)Farooq的說(shuō)法,他最關(guān)注的一個(gè)新特性就是集成了PolyBase,也就是說(shuō)現(xiàn)在可以直接使用T-SQL來(lái)將SQL Server 2016和Hadoop對(duì)接起來(lái)。“微軟在此之前沒(méi)有提供什么像樣的分析工具,在這個(gè)版本中,它以PolyBase的形式提供了連接到SQL Server的分析工具。有了PolyBase之后,像社保局這樣的用戶就不需要再另行采購(gòu)了。而且你的數(shù)據(jù)是可以真正存儲(chǔ)在服務(wù)器上了(之前需要單獨(dú)的存儲(chǔ))。”Farooq說(shuō)。

另外一個(gè)值得關(guān)注的功能就是JSON與R語(yǔ)言的結(jié)合,這對(duì)于數(shù)據(jù)科學(xué)家來(lái)說(shuō)是非常重要的,他們無(wú)需再將代碼從數(shù)據(jù)庫(kù)中導(dǎo)出來(lái)運(yùn)行R程序了,現(xiàn)在可以直接對(duì)服務(wù)器數(shù)據(jù)使用R語(yǔ)言進(jìn)行查詢。

作為DBA,F(xiàn)arooq認(rèn)為最重要的一個(gè)新功能就是性能與安全性的提升。“我們所有會(huì)員的數(shù)據(jù)都需要嚴(yán)格保密,”他說(shuō):“因此我們需要特別高級(jí)的安全性功能,比如AlwaysEncrypted。目前在社保局,我們使用了一些第三方的安全工具,比如DbDefence數(shù)據(jù)加密軟件。而Always Encrypted可以讓數(shù)據(jù)始終處在加密的狀態(tài),即使是在交易處理和查詢的階段。還沒(méi)有那個(gè)關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品能夠做到這一點(diǎn)。”

此外,SQL Server2016對(duì)內(nèi)存數(shù)據(jù)的支持也實(shí)現(xiàn)了上百倍的提升,包括支持內(nèi)存索引。Farooq表示,查詢數(shù)據(jù)存儲(chǔ)以及實(shí)時(shí)查詢統(tǒng)計(jì)可以讓所有DBA的工作輕松許多,現(xiàn)在你可以直接看到哪些查詢占用率了最多資源,然后根據(jù)使用情況進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)劃。

滿足客戶需求的SQL Server 2016

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

數(shù)據(jù)庫(kù)咨詢顧問(wèn)Denny Cherry的兩個(gè)客戶就在對(duì)SQL Server 2016進(jìn)行測(cè)試,而他本人也與SQL Server 2016產(chǎn)品研發(fā)團(tuán)隊(duì)有著密切的溝通,并參與到了早期的用戶計(jì)劃項(xiàng)目當(dāng)中。由于比其他用戶更早地接觸到了SQL Server 2016,Cherry的一個(gè)客戶已經(jīng)計(jì)劃將新版本數(shù)據(jù)庫(kù)投入到生產(chǎn)環(huán)境。

“由于微軟在之前打下了非常好的基礎(chǔ),所以新版本可以非常快地在用戶群體之中鋪開。比如,微軟下了很多功夫來(lái)改進(jìn) T-SQL,高可用性以及內(nèi)存OLTP這些核心功能。這些功能在之前的2012和2014版本當(dāng)中就得到了很好的驗(yàn)證。”Cherry說(shuō)。

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

SQL Server 2016:行級(jí)安全

對(duì)于SQL Server,一個(gè)常見的批評(píng)是,其安全模型只能識(shí)別表和列。用戶如果希望以行為單位應(yīng)用安全規(guī)則,就需要使用存儲(chǔ)過(guò)程或表值函數(shù)來(lái)模擬,然后找一種方法,確保它們不會(huì)被繞開。在SQL Server 2016中,那不再是個(gè)問(wèn)題。

實(shí)現(xiàn)

SQL Server 2016(及SQL Azure)中的 行級(jí)安全 基于一個(gè)專門設(shè)計(jì)的內(nèi)聯(lián)表值函數(shù)。該函數(shù)要么返回一個(gè)只包含值1的行,要么不返回結(jié)果,這取決于用戶訪問(wèn)的行是否是相關(guān)行。請(qǐng)看下面的函數(shù):

 

  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';  

這段代碼的意思是,當(dāng)前用戶必須是一名經(jīng)理,或者是一名與記錄相關(guān)的推銷員。該函數(shù)沒(méi)有訪問(wèn)行本身,但用戶可以使用參數(shù)傳入相應(yīng)的列(比如,SalesRep)。例如:

 

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

實(shí)際效果

在使用行級(jí)安全時(shí),用戶無(wú)法看到他們不能訪問(wèn)的行。這就好像在訪問(wèn)表時(shí)自動(dòng)增加一個(gè)額外的、安全相關(guān)的where子句。

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

通過(guò)使用精心設(shè)計(jì)的查詢,可以導(dǎo)致信息泄露。例如,SELECT 1/(SALARY-100000) FROM PAYROLL WHERE NAME=’John Doe’ 會(huì)讓一個(gè)惡意用戶知道John Doe的工資是10萬(wàn)美元。即使有一個(gè)恰當(dāng)?shù)陌踩^詞阻止惡意用戶直接查詢其它人的工資,他也可以在查詢返回“除數(shù)為0”的異常時(shí)確定工資數(shù)額。

此外,信息也可能通過(guò)統(tǒng)計(jì)對(duì)象泄露。為了降低風(fēng)險(xiǎn),查看受保護(hù)列統(tǒng)計(jì)信息的用戶必須是“表的所有者,或者是服務(wù)器固有角色sysadmin、數(shù)據(jù)庫(kù)固有角色db_owner或db_ddladmin的成員”。

中間層應(yīng)用程序

截至目前,我們討論的場(chǎng)景是用戶以自己的身份登錄。在中間層應(yīng)用程序中,所有人都共享同一個(gè)數(shù)據(jù)庫(kù)賬戶,實(shí)現(xiàn)行級(jí)安全需要額外的步驟。

對(duì)于中間層應(yīng)用程序,推薦的設(shè)計(jì)模式是將 CONTEXT_INFO 的值設(shè)置為連接打開時(shí)用戶特定于應(yīng)用程序的用戶id。然后,安全函數(shù)就可以引用CONTEXT_INFO的值。例如:

 

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

該方法的前提是,用戶無(wú)法執(zhí)行任意SQL,因?yàn)槟菚?huì)讓他們可以隨意更改CONTEXT_INFO。

 

責(zé)任編輯:Ophira 來(lái)源: TechTarget中國(guó) 編程技術(shù)
相關(guān)推薦

2017-03-07 09:31:30

Windows SerHyper-V Manager

2010-07-12 10:34:58

SQL Server視

2010-07-23 09:53:29

SQL Server

2015-08-27 15:03:08

Live Query sql2016Livesql2016 調(diào)優(yōu)s

2015-09-22 11:27:34

數(shù)據(jù)加密全程加密SQL Server

2015-10-21 15:12:55

SQL Server數(shù)Always Encr 全程加密

2015-10-21 15:17:50

SQL Server Always Encr

2009-04-21 09:02:12

Windows 8微軟操作系統(tǒng)

2009-12-07 10:02:08

SQL Server支

2015-08-21 10:00:33

SQL Server安裝手記

2015-09-22 11:24:48

數(shù)據(jù)加密SQL Server

2009-12-23 11:17:21

ADO.NET SQL

2015-10-28 11:00:09

動(dòng)態(tài)數(shù)據(jù)屏蔽Azure SAL數(shù)據(jù)SQL Server

2011-09-07 10:24:01

SQL Server鏡像

2011-02-28 17:41:20

SQL Server

2010-06-03 14:09:35

2012-04-10 08:22:14

iPhone

2010-07-15 09:14:32

SQL server組

2010-04-01 09:23:07

Windows 7 S性能改進(jìn)

2015-06-03 14:37:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)