数据库用户权限

chestnut 2014-06-05 03:03:00
背景:SQL SERVER 2012。假设有100个用户,每个用户只能访问表格内属于他自己的数据
表格 tb_test 如下:
company num
A公司 1
B公司 10
C公司 60
A公司的用户只能访问该表格company='A公司'的数据,其他公司也是一样。

目前的做法是,建A公司帐号,指定对象到该库的该表格 tb_test 的读数据权限,但是这个用户可以全读该表格!!!


问题: 是建立100个视图,每个视图访问特定数据,然后用户改为只读视图,但是这种方法万一随着用户的增多,视图岂不是建立非常多如何使得该用户的权限只有访问属于自己的数据?
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
在路上_- 2014-06-05
  • 打赏
  • 举报
回复
引用 8 楼 journeysxy 的回复:
引用 7 楼 xxzxwsx 的回复:
我是希望 SQL Server 未来版本能在行级权限控制上有突破,这个需求还是蛮多的。
目前没这技术吗
根据我目前的学识,SQL Server 没有直接的行级权限控制,需要通过视图、存储过程等曲线解决,很不方便,也很难完美。 求大神补课
chestnut 2014-06-05
  • 打赏
  • 举报
回复
引用 7 楼 xxzxwsx 的回复:
我是希望 SQL Server 未来版本能在行级权限控制上有突破,这个需求还是蛮多的。
目前没这技术吗
在路上_- 2014-06-05
  • 打赏
  • 举报
回复
我是希望 SQL Server 未来版本能在行级权限控制上有突破,这个需求还是蛮多的。
chestnut 2014-06-05
  • 打赏
  • 举报
回复
引用 5 楼 wufeng4552 的回复:
[quote=引用 2 楼 journeysxy 的回复:] [quote=引用 1 楼 wufeng4552 的回复:] 你不一定非要用SQLServer的账户去限制用户访问数据 你可以建立一个用户表(用户表里可以设置公司信息) 查询的时候通过传递参数去查询
这种方法也是可以。但是直接访问数据库可能就有问题了,能否坐到该用户只能访问表格的 部分行 数据呢?[/quote] 视图 还有如果是互不相干的公司 我觉得还是建立各自的库比较好 每个公司一个库[/quote] 数据量不大,没必要建那么多库把?
水族杰纶 2014-06-05
  • 打赏
  • 举报
回复
引用 2 楼 journeysxy 的回复:
[quote=引用 1 楼 wufeng4552 的回复:] 你不一定非要用SQLServer的账户去限制用户访问数据 你可以建立一个用户表(用户表里可以设置公司信息) 查询的时候通过传递参数去查询
这种方法也是可以。但是直接访问数据库可能就有问题了,能否坐到该用户只能访问表格的 部分行 数据呢?[/quote] 视图 还有如果是互不相干的公司 我觉得还是建立各自的库比较好 每个公司一个库
水族杰纶 2014-06-05
  • 打赏
  • 举报
回复
引用 3 楼 fredrickhu 的回复:
[quote=引用 2 楼 journeysxy 的回复:] [quote=引用 1 楼 wufeng4552 的回复:] 你不一定非要用SQLServer的账户去限制用户访问数据 你可以建立一个用户表(用户表里可以设置公司信息) 查询的时候通过传递参数去查询
这种方法也是可以。但是直接访问数据库可能就有问题了,能否坐到该用户只能访问表格的 部分行 数据呢?[/quote] 这个为什么要在数据库端来实现呢 直接在程序端实现啊。[/quote] 程序端怎么实现? 全部查询过去?
--小F-- 2014-06-05
  • 打赏
  • 举报
回复
引用 2 楼 journeysxy 的回复:
[quote=引用 1 楼 wufeng4552 的回复:] 你不一定非要用SQLServer的账户去限制用户访问数据 你可以建立一个用户表(用户表里可以设置公司信息) 查询的时候通过传递参数去查询
这种方法也是可以。但是直接访问数据库可能就有问题了,能否坐到该用户只能访问表格的 部分行 数据呢?[/quote] 这个为什么要在数据库端来实现呢 直接在程序端实现啊。
chestnut 2014-06-05
  • 打赏
  • 举报
回复
引用 1 楼 wufeng4552 的回复:
你不一定非要用SQLServer的账户去限制用户访问数据 你可以建立一个用户表(用户表里可以设置公司信息) 查询的时候通过传递参数去查询
这种方法也是可以。但是直接访问数据库可能就有问题了,能否坐到该用户只能访问表格的 部分行 数据呢?
水族杰纶 2014-06-05
  • 打赏
  • 举报
回复
你不一定非要用SQLServer的账户去限制用户访问数据
你可以建立一个用户表(用户表里可以设置公司信息)
查询的时候通过传递参数去查询

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧