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
您可能感兴趣
- navicat不能连接到mysql报错2013(Navicat连接SQL Server数据:报错08001-命名管道提供程序的完美解决方法)
- sql server修改sa密码(sqlserver添加sa用户和密码的实现)
- SQL Server表分区
- SQL SERVER中使用WITH TIES获取前几行数据
- sqlserver替换脚本(SQL Server中对数据截取替换的方法详解)
- sqlserver备份数据库语句(SQL SERVER 数据库备份的三种策略及语句)
- sql server作业的调度信息中各列的含义
- sqlserver表值函数用法(SQL Server数据库中的表名称、字段比较)
- sqlserver连接字符串函数(SQL SERVER 2012新增函数之字符串函数FORMAT详解)
- SQL Server 批量导入数据的方法
- SQL Server与Oracle数据类型的对应关系
- sql server convert 函数(sql server通过pivot对数据进行行列转换的方法)
- sql server go语句
- sqlserver序列可以自定义(sql server 自定义分割月功能详解及实现代码)
- sql server中策略管理
- 如何使java与sqlserver数据库连接(java连接mysql数据库 java连接sql server数据库)
- 双十二(双十二和双十一哪个划算)
- 佛肚竹盆景的养护之道(佛肚竹盆景的养护之道)
- 包水饺(包水饺手法怎么包视频)
- 越南河粉(越南河粉来自哪里)
- 按这几方面养护佛肚竹盆景,保证枝叶繁茂,造型优美(按这几方面养护佛肚竹盆景)
- 冰岛旅游攻略(冰岛旅游攻略及花费八日游)
热门推荐
- sql server语法大全(Sql Server的一些知识点定义总结)
- dedecms分页效果(织梦dedecms将列表页重复的第一页去除的方法)
- 云服务器怎么免费(有永久免费的云服务器吗?)
- Chrome谷歌浏览器开发者工具中Profiles的使用
- sqlserver降序排列(SQL SERVER临时表排序问题的解决方法)
- docker中的mongodb(Docker mongoDB 4.2.1 安装并收集springboot日志的步骤详解)
- dedecms调用内容(DEDECMS文章列表页调用tag的修改方法)
- canvas如何开启(canvas实现手机的手势解锁的步骤详细)
- mysql的主从复制怎么做(MySQL主从复制原理以及需要注意的地方)
- 阿里云服务器无法连接(阿里云香港服务器远程连接不上,本地网络都ping不通服务器)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9