SQL Server中对列的权限设置
类别:数据库 浏览量:312
时间:2016-6-15 SQL Server中对列的权限设置
SQL Server中对列的权限设置一、方式一:使用视图
将需要限制用户只能看到特定的几个列、设置成一个视图,然后对这个视图进行权限控制
二、方式二:使用GRANT语句
1、授予相关列的查询权限(SELECT)
(1)、在数据库db1中,登录名UserA 只能有权限查询 Employee表 里面的BusinessEntityID, NationalIDNumber, LoginID三个字段权限,不能查询其它字段
GRANT SELECT(BusinessEntityID, NationalIDNumber, LoginID) ON Employee TO UserA
(2)、可以用下面SQL查看授予UserA的权限
SELECT dp.grantee_principal_id ,
P.name AS UName ,
dp.permission_name ,
C.name ,
OBJECT_NAME(O.object_id) AS TabName
FROM sys.database_permissions dp
INNER JOIN sys.objects O ON dp.major_id = O.object_id
INNER JOIN sys.columns C ON C.object_id = O.object_id
AND C.column_id = dp.minor_id
INNER JOIN sys.database_principals P ON P.principal_id = dp.grantee_principal_id and P.name='UserA'
(3)、如果查询语句使用BusinessEntityID, NationalIDNumber, LoginID字段之外的其它字段
SELECT BusinessEntityID, NationalIDNumber, LoginID,JobTitle FROM Employee
报如下错误
Msg 230, Level 14, State 1, Line 8
The SELECT permission was denied on the column 'JobTitle' of the object 'Employee', database 'db1', schema 'dbo'
2、授予相关列的修改权限(Update)
(1)、对于登录名UserB,只允许其修改 Address表 的AddressLine1,AddressLine2两个字段,其它字段不许修改
GRANT UPDATE(AddressLine1,AddressLine2) ON Address TO UserB
(2)、可以用下面SQL查看授予UserB的权限
SELECT dp.grantee_principal_id ,
P.name AS UName ,
dp.permission_name ,
C.name ,
OBJECT_NAME(O.object_id) AS TabName
FROM sys.database_permissions dp
INNER JOIN sys.objects O ON dp.major_id = O.object_id
INNER JOIN sys.columns C ON C.object_id = O.object_id
AND C.column_id = dp.minor_id
INNER JOIN sys.database_principals P ON P.principal_id = dp.grantee_principal_id and P.name='UserB'
标签:SQL Server
您可能感兴趣
- 怎么写存储过程sql server(SqlServer存储过程实现及拼接sql的注意点)
- sql server数据库权限(SQL Server中通用数据库角色权限的处理详解)
- sqlserver登录身份验证(SQL Server 2012 身份验证Authentication)
- sqlserver索引介绍(浅析SQL Server的聚焦使用索引和查询执行计划)
- sql server2008无法连接怎么办(SQL Server 2008 R2登录失败的解决方法)
- sqlserver触发器循环条件(SQL Server 利用触发器对多表视图进行更新的实现方法)
- vs和sql安装顺序(VS2015安装之后加装Sql server2014详细步骤)
- Sql Server 更新锁(UPDLOCK)
- sqlserver分表后如何查询(SQL Server中row_number分页查询的用法详解)
- sqlserver2012tcpip配置(Sql Server2012 使用IP地址登录服务器的配置图文教程)
- sql server go语句
- sqlserver替换脚本(SQL Server中对数据截取替换的方法详解)
- sql server怎么导出数据库(sqlserver复制数据库的方法步骤图文)
- sql server 字符串处理(SQL Server中利用正则表达式替换字符串的方法)
- 2015-10-1
- sql server 判断 null
- 车友的选择| 轮毂该如何选(车友的选择轮毂该如何选)
- 秦海璐炫耀和王新军热恋蜜事,不料对方吐槽她吃饱后肚子撅老高(秦海璐炫耀和王新军热恋蜜事)
- 秦海璐一袭旗袍惹人倾心,将高级与淡雅展现的游刃有余(秦海璐一袭旗袍惹人倾心)
- 门外之见 海蛎子味 的表演,能走多远(门外之见海蛎子味)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
- 《金陵秘事》的剧情跌宕起伏 给观众带来的怎样的感官体验(金陵秘事的剧情跌宕起伏)
热门推荐
- pythonjson格式化原理(详解pythonstr与json类型转换)
- pyqt一键部署python环境(python使用PyQt5的简单方法)
- apache搭建ftp服务器(使用Apache&花生壳架设Web服务器)
- 如何选择适合自己的云服务器(选择云服务器配置需要注意什么?)
- 如何对python中列表中的数据运算(Python3.5集合及其常见运算实例详解)
- server2008对前端有啥用(MyWebServer好不好?MyWebServer WEB服务器软件介绍)
- docker正常容器启动失败(Docker容器无法停止删除的解决方案)
- pythonssh登录服务器(对python 通过ssh访问数据库的实例详解)
- php中命名空间常用吗(PHP命名空间定义与用法实例分析)
- python3.7标准库官方手册(Python3.7 dataclass使用指南小结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9