zoukankan      html  css  js  c++  java
  • Implementing SQL Server Row and Cell Level Security

    Problem

    I have SQL Server databases with top secret, secret and unclassified data.  How can we establish custom SQL Server data classification schemes for implementing "need to know" access to data in specific tables?  Check out this tip to learn more.

    Solution

    With current regulations such as SOX, HIPAA, etc., protecting sensitive data is a must in the enterprise.  In this tip we will see how to implement Row Level Security (RLS) and Cell Level Security (CLS) with the help of SQL Server Label Security Toolkit which you can download from CodePlex http://sqlserverlst.codeplex.com/.

    What is a security label in SQL Server?

    A security label is a marking that describes the sensitivity of an item, in this case, information. It consists of a string containing defined security categories of the information available.

    ID

    Name

    CreditCardNo

    Classification

    1 Ken Sánchez 1010101 SECRET
    2 Terri Duffy 8498489 TOP SECRET
    3 Rob Walters 4884556 UNCLASSIFIED

    In order to access the information the users need to have a clearance defined.

    User

    Clearance

    Alice TOP SECRET
    Bob SECRET
    David UNCLASSIFIED

    So, in this case, assuming a hierarchical security scheme, if Alice performs a SELECT * FROM Table1 he will get all of the three records, because she has TOP SECRET clearance and that includes SECRET and UNCLASSIFIED clearances. And if Bob is the one who performs the previous query, he will get only the records 1 and 3.

    How does the SQL Server Label Security toolkit work?

    This toolkit consists of a framework composed by:

    • Metadata tables used to define the security labels.
    • Helper stored procedures and functions to manipulate the labels.
    • A view, vwVisibleLabels that contains the list of all the security labels present in the database to which the current logged user have access (I will expand this topic below).
    • A GUI to develop the security schema.

    It is important to note that the approach used by this Toolkit makes the assumption that applications using the database will connect by using a specific identity for each end user. This identity could be either a Windows account or a SQL Server login. That's because the security labels are associated to database roles or Windows groups. On SQL Server 2012 you can use the Contained Database feature to create a user without a login.

  • 相关阅读:
    DevExpress XtraReport报表预览时可编辑的功能
    vim编辑器的常用命令
    git 的一些常用命令
    ASP.NET MVC过滤器粗略总结
    违法占耕辅助处理软件
    三调管理信息系统
    java学习随笔源码day01
    Java学习笔记Day01-004之static关键字
    人事工资信息管理系统(核心代码实现、操作视频)
    人事工资信息管理系统之数据库设计
  • 原文地址:https://www.cnblogs.com/mxy1028/p/5381685.html
Copyright © 2011-2022 走看看