社区
疑难问题
帖子详情
拼接语句跟数据库权限的问题,多谢大家了
drysea
2009-07-07 10:09:07
系统要求把数据库用户的权限控制在特定几个存储过程
也就是对于某用户 web来说,表跟函数跟视图都是不可见的
其中有一个存储过程,必须用拼接语句来实现,就是这个存储过程,总是提示用户web对其中用到的表,函数没有select权限
而我又不能提高web的权限,请问各位大侠,有什么办法么?
...全文
47
15
打赏
收藏
拼接语句跟数据库权限的问题,多谢大家了
系统要求把数据库用户的权限控制在特定几个存储过程 也就是对于某用户 web来说,表跟函数跟视图都是不可见的 其中有一个存储过程,必须用拼接语句来实现,就是这个存储过程,总是提示用户web对其中用到的表,函数没有select权限 而我又不能提高web的权限,请问各位大侠,有什么办法么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luloyun
2009-07-07
打赏
举报
回复
这个只是在当前上下文中,对主体的 IMPERSONATE 权限,并非真正的权限提升。
drysea
2009-07-07
打赏
举报
回复
[Quote=引用 13 楼 luloyun 的回复:]
这个是数据库的强项,对于当前User,对于usp_demo没有查看,预览,只有执行的权限。但是对于Paul用户,可以拥有对于数据库所有的权限,那么对于当前User,在执行的时候,可以赋予其拥有Paul一样的权限去执行。 类似如下编写存储过程。
CREATE PROCEDURE dbo.usp_Demo
WITH EXECUTE AS 'paul'
AS
...
[/Quote]
如果用你这种做法,那调用这个存储过程的用户就该是paul了吧,这个就相当于提升权限了啊。。。
还是不能解决我的问题。。。哎。。。
luloyun
2009-07-07
打赏
举报
回复
这个是数据库的强项,对于当前User,对于usp_demo没有查看,预览,只有执行的权限。但是对于Paul用户,可以拥有对于数据库所有的权限,那么对于当前User,在执行的时候,可以赋予其拥有Paul一样的权限去执行。 类似如下编写存储过程。
CREATE PROCEDURE dbo.usp_Demo
WITH EXECUTE AS 'paul'
AS
...
光宇广贞
2009-07-07
打赏
举报
回复
[Quote=引用 11 楼 fredrickhu 的回复:]
在前台进行好了 数据库是不好实现的
[/Quote]
和我想的一样
不过我仍然把那个叫后台
--小F--
2009-07-07
打赏
举报
回复
在前台进行好了 数据库是不好实现的
drysea
2009-07-07
打赏
举报
回复
[Quote=引用 9 楼 luloyun 的回复:]
请使用EXECUTE AS USER = 'paul';
切换上下文到一个有权限执行用户paul,然后,在使用Revert切换回当前用户。
[/Quote]
就是在存储过程内部需要的部分换一个user?对于程序是没有任何影响的吧?会不会有什么安全问题嘞?
这上面真的不是很懂
luloyun
2009-07-07
打赏
举报
回复
请使用EXECUTE AS USER = 'paul';
切换上下文到一个有权限执行用户paul,然后,在使用Revert切换回当前用户。
drysea
2009-07-07
打赏
举报
回复
[Quote=引用 7 楼 hdhai9451 的回复:]
是因为函数没有授权,是这样解决:
企业管理器-->自定义函数-->函数名-->属性-->权限-->找到对应的访问用户,然后在select下面打“勾”
[/Quote]
这个我知道,如果不用拼接语句的话,不直接授权也是可以访问的
而我要做的就是把权限只限制在指定的存储过程上,公司的保密需要。。。
Andy__Huang
2009-07-07
打赏
举报
回复
是因为函数没有授权,是这样解决:
企业管理器-->自定义函数-->函数名-->属性-->权限-->找到对应的访问用户,然后在select下面打“勾”
usher_gml
2009-07-07
打赏
举报
回复
UP
光宇广贞
2009-07-07
打赏
举报
回复
我在想,为什么不放在BLL层,让用户提交需求给BLL层,然后BLL层拥有权限来从数据库中提取数据,然后再选择性地反馈给用户。
用户和数据库直接沟通是有这个问题哈……等于用户是一个数据库操作员了……用三层设计模式来解决这个问题吧……一点点想法。
drysea
2009-07-07
打赏
举报
回复
..........因为要实现根据传入的参数进行排序
参数包括列名跟排序规则,情况比较多样
看来只能跟程序员讨论看看,放在代码部分完成了。。。。。。
htl258_Tony
2009-07-07
打赏
举报
回复
[Quote=引用 1 楼 haiwer 的回复:]
那是没有办法的,除非
1、增加权限
2、修改存储过程,不访问着几个表,包括连接SQL过程中
[/Quote]UP
knifewei
2009-07-07
打赏
举报
回复
应该开放只读的权限吧
昵称被占用了
2009-07-07
打赏
举报
回复
那是没有办法的,除非
1、增加权限
2、修改存储过程,不访问着几个表,包括连接SQL过程中
精华Python小课 3天零基础入门
因此本课程专为想学习/从事人工智能领域的同学设计,重点介绍人工智能中最常用的Python知识,重点讲解numpy等实用模块,同时大量结合习题和实战,帮助大家快速上手Python。 【课程涵盖技术点】 1、Python开发...
相关业务
问题
+系统
问题
+设计
问题
整理统计
业务系统及其他相关面试
问题
整理:线上相关
问题
排查+高并发系统的限流+高并发秒杀系统设计+负载均衡+一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url ...
游标变量 动态sql及变量绑定的使用
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! http://blog.sina.com.cn/s/blog_3fed8ad60100bzod.html http://space.itpub.net/12474069/viewspace-621157 在oracle 中,对于一个...
2012 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
九月十月百度人搜,阿里巴巴,...
数据库
1中存放着a类数据,
数据库
2中存放着以天为单位划分的表30张(比如table_20110909,table_20110910,table_20110911),总共是一个月的数据。表1中的a类数据中有一个字段userid来唯
游标变量、动态sql及变量绑定的使用
在oracle 中,对于一个提交的sql
语句
,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析. 一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的...
疑难问题
22,210
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章