- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
SQL Server 2008中使用稀疏列和列集的方法
对列集实施安全
对列集实施安全就像对其它字段实施安全一样,但是稀疏列的权限可能会影响从列集获取数据。让我们做些测试。
首先,让我们授予对所有稀疏列的SELECT权限,并试图从列集获取数据。你需要有一个用于这个测试的单独账户。如果你没有额外的账户,那么创建一个登录和一个用户为User1。让我们使用User1权限来试着获取数据。
代码1:使用User1的帐户获取和更新数据。
代码2:将稀疏列的SELECT权限授予User1并执行代码1。
尽管我们授予了对所有稀疏列的SELECT权限,但是用户却不能从列集获取数据。它要求显式的SELECT权限。但是如果我们授予稀疏列上的SELECT和UPDATE权限,User1就将可以访问这个列集。但是User1不能更新这个列集。
代码3:授予稀疏列上的SELECT和UPDATE权限给User1并执行代码1。
现在让我们授予对列集的SELECT权限,并尝试访问稀疏列。
代码4 :授予列集上的SELECT权限给User1并执行代码1。
就像代码3中的代码一样,如果我们授予对列集的SELECT和UPDATE权限给User1,那么SELECT语句2将会成功。此外,User1将可以对列集执行UPDATE语句,但不能对稀疏列执行UPDATE语句。看下面的代码5。
代码5:授予对列集的SELECT和UPDATE权限给User1并执行代码1。
现在让我们测试DENY权限是怎样传播的。让我们授予对稀疏列的SELECT权限并拒绝对列集SELECT的权限。正如你所预料的,User1将可以访问所有的稀疏列,但不能访问列集。拒绝对列集SELECT的权限不会影响稀疏列。
代码6:授予对稀疏列SELECT的权限并拒绝列集的SELECT权限给User1并执行代码1。
但是当对稀疏列SELECT的权限被拒绝时,它会传播到列集。看代码7。User1将不能访问到列集,即使我们授予了列集上的SELECT权限。
代码7:拒绝对稀疏列SELECT的权限并授予对列集SELECT的权限给User1并执行代码1。
使用触发器跟踪变更
上一篇:手势识别器终端的设计
下一篇:TD-SCDMA密集城区覆盖解决方案