麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

Sql Server 2016新功能之Row-Level Security(值得關注)

2024-08-31 01:04:19
字體:
來源:轉載
供稿:網友

Sql Server 2016 有一個新功能叫 Row-Level Security ,大概意思是行版本的安全策略(原來我是個英語渣_(:з」∠)_)

直接上例子。這個功能相當通過對表添加一個函數作為過濾規則,使得擁有不同條件的用戶(或者登錄名) 之類的,只能獲取到符合條件的數據。相對來說是提供了那么一點的便捷性,當然也增加了數據的安全性,相當于每個用戶連接進來只能看到

符合規則的數據(當然,這里的用戶只是一個舉例。其實是可以通過編寫過濾函數來實現的)

舉個例子

有三個用戶 Sales1 ,Sales 2 ,Manager 3個數據庫用戶,然后用一個Sales的表來寄存他們的訂單記錄

CREATE TABLE Sales ( OrderID int, SalesRep sysname, Product varchar(10), Qty int ); INSERT Sales VALUES (1, 'Sales1', 'Valve', 5), (2, 'Sales1', 'Wheel', 2), (3, 'Sales1', 'Valve', 4), (4, 'Sales2', 'Bracket', 2), (5, 'Sales2', 'Wheel', 5), (6, 'Sales2', 'Seat', 5); -- View the 6 rows in the table SELECT * FROM Sales; go

sqlserver2016,Row-Level,Security

這是全部表的數據的截圖

然后添加3個用戶,分別就是Sales1 Sales2 Manager 3個用戶,分別對他們的賦予Sales表的查詢和刪除(用于測試刪除功能) 的權限。

CREATE USER Manager WITHOUT LOGIN; CREATE USER Sales1 WITHOUT LOGIN; CREATE USER Sales2 WITHOUT LOGIN;GRANT SELECT,delete ON Sales TO Manager; GRANT SELECT,delete ON Sales TO Sales1; GRANT SELECT,delete ON Sales TO Sales2; 

然后以下是這個功能的核心部分。首先我們創建一個過濾函數,然后將這個過濾函數添加到這個表的安全策略里面,就可以看到效果了。

函數邏輯很簡單,傳入一個@SalesRep 的名稱,用于匹配當前的 User_Name。匹配了才返回數據

然后下面一行是創建了一個安全策略,并且在Sales 的表里面使用函數 fn_securitypredicate 作為表的篩選器。傳入函數的參數選定為 SalesRep 字段(也就是我們建表的那個銷售代表字段了)

CREATE FUNCTION 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'; CREATE SECURITY POLICY SalesFilter ADD FILTER PREDICATE dbo.fn_securitypredicate(SalesRep) ON dbo.Sales WITH (STATE = ON); 

然后我們看下查詢的結果

EXECUTE AS USER = 'Sales1'; SELECT * FROM Sales; REVERT; EXECUTE AS USER = 'Sales2'; SELECT * FROM Sales; REVERT; EXECUTE AS USER = 'Manager'; SELECT * FROM Sales; REVERT; 

sqlserver2016,Row-Level,Security

效果就是這樣,當然如果是要設置不同的過濾條件,設置不同的字段的時候,是可以通過上文的函數里面的代碼和安全策略進行設置的。按照這個過濾情況,如果登錄用戶非Sales1 Sales2 Manager 3個其中之一,是什么都查詢不了的。

另外,用戶無法刪除被過濾的數據。比方說 Sales1 不能刪除或修改OrderID = 3 的數據。

RLS的出現也是能幫助我們減輕一定功能上面的實現的~

PS:下面看下SQL Server 2016新功能特性

1、PolyBase:更簡單高效的管理關系型和非關系型的T-SQL數據;

2、AlwaysOn增強功能:實現高可用和性能次之,包括高達3個同步復制、DTC支持和次級的Round-Robin負載均衡;

3、Row Level Security(層級安全性控管):讓客戶基于用戶特征控制數據訪問,功能已內置至數據中,無須再修改應用;

4、Dynamic Data Masking(動態數據屏蔽):有助于保護未被加密的數據;

5、原生JSON支持:實現輕松解析和存儲,以及輸出關系型數據;

6、Temporal數據庫支持:可跟蹤歷史數據變化;

7、數據歷史記錄查詢,以便DBA可精確定位;

8、MDS增強功:提供主數據服務器的服務器管理能力;

9、增強的Azure混合備份功能:在Azure虛擬機中可實現更快的備份和恢復。

重要改進:

1、始終加密(Always Encrypted)

數據的存儲和使用都將采用由微軟研究院所開發的技術進行加密;

2、彈性數據庫(Stretch Database)

SQL Server用戶將能夠把數據動態延伸至Microsoft Azure,以便增強其性能;

3、實時業務分析與內存中聯機事務處理(Real-time Operational Analytics & In-Memory OLTP)

該分析技術于2014年首次引入,現在已變得更加先進(更高的實時性能);

4、內置高級分析(Built-in Advanced Analytics)、PolyBase和Mobile BI

在SQL Server 2016上,數據分析和PolyBase等技術會更易使用。此外,Mobile BI將被用于移動設備上的圖形展示。

以上所述是小編給大家介紹的Sql Server 2016新功能之Row-Level Security(值得關注),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩视频在线观看免费 | 日日鲁夜夜视频热线播放 | 欧美日韩在线视频一区 | avlululu| 成人视屏网站 | 日日操夜夜透 | 狠狠干最新网址 | 黄色av片三级三级三级免费看 | www.mitao| 天天干天天透 | 免费毛片在线视频 | av在线收看 | 永久免费黄色片 | 国产又白又嫩又紧又爽18p | 天天看逼| 午夜啪视频 | 娇妻被各种姿势c到高潮小说 | 久久精品欧美视频 | 成人毛片免费 | 精品久久久一二三区播放播放播放视频 | 爱性久久久久久久 | 中文字幕在线免费播放 | 免费嗨片首页中文字幕 | fc2国产成人免费视频 | 久久精品欧美一区二区三区不卡 | 久久国产精品免费视频 | 国产精品一区在线看 | 一区二区三区四区高清视频 | 欧美.com| 妇子乱av一区二区三区 | 成人毛片网站 | 1级黄色毛片 | 久国久产久精永久网页 | 九草av| 日韩毛片免费观看 | 久久国产精品区 | 国产亚洲精彩视频 | 欧美中文字幕在线视频 | 激情视频日韩 | 亚洲精品a在线观看 | 操你逼|