`
modabobo
  • 浏览: 510045 次
文章分类
社区版块
存档分类
最新评论

Sql Server中限定用户只能访问指定的储存过程

 
阅读更多

Sql Server中限定用户只能访问指定的储存过程
有一个客运售票系统,除了自己车站售票外,还允许外面单位通过internet或专线等连接进行代理售票,为此,我们新建了几个必要的储存过程,作为接口,供对方开发代售软件使用,并新建一个登录名,供对方连接到数据库
现在问题出来了,我们提供的储存过程都比较复杂(业务本身复杂造成),里面需要访问大量表、储存过程、函数等,我们只希望对方使用这几个储存过程,而不希望用户访问表等其他信息,一是出于保密(不希望对方看到不该看的数据),二是出于安全,万一对方不小心来个DELETE,那就欲哭无泪了,三是防止对方为简化查询,直接从表提取数据(表中数据量大,有索引,对方可能忽略),从而导致服务器效率低下。
为简化叙述,我们假设储存过程为myProc1,登录名为myUser,myProc1的内容为 select * from table1。
设定myUser只能执行myProc,用myUser登录,执行储存过程myProc1:EXEC [dbo].[myProc1],被服务器拒绝,提示没有查询table1的权限,如果赋于了查询权限,前面提到的问题就无法解决了,如何只允许myUser执行myProc1而不允许其访问table1呢,经过试验,我采用链接服务器较好地解决了,方法如下:
1、建立一个链接服务器,注意,是自己和自己链接,为安全起见,我修改了sql server默认端口,新端口号为4000,因此,链接服务器名称为“服务器名,4000”,登录名为sa,注意,登录名为sa或者其他能访问相关数据的帐号
2、新建一个储存过程,假如为myProc2,并允许myUser执行该储存过程
3、myProc2的内容为 exec [服务器名,4000].[数据库名].dbo.myProc1

现在,将myProc2作为对外接口就行了,也就是用户可以执行myProc2,如EXEC [dbo].[myProc2],我们来看看执行过程,用户用myUser登录后,执行myProc2,myProc2再调用链接服务器上 myProc1,因为使用了链接服务器,因此,登录链接服务器的帐号变成了sa,从而间接起到防止用户查询其他表的目的。

分享到:
评论

相关推荐

    sqlserver的存储过程与 where in 多值参数

    自己总结的 关于sqlserver存储过程与多值参数的解决办法。

    SQLServer2000高级编程技术-已添加书签,想学存储过程、SQL编程务必要看,分析非常透彻

    目录如下: 第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和...附录A SQL Server 2000中的T-SQL和XML数据类型 附录B 练习答案

    SQLServer2000高级编程技术(part02)-想学存储过程 SQL编程 务必要看

    第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 ...附录A SQL Server 2000中的T-SQL和XML数据类型 附录B 练习答案

    JSP;SQL SERVER数据库;个人通讯录管理系统

    本文采用的是Jsp和SQL SERVER技术,通过使用数据库达到数据的存取,从而开发出了个人通讯录管理系统。讨论了开发该系统的可行性...系统利用用户权限限定,从而提高了程序的安全性,该系统通过测试,能达到预期的效果。

    SQL SERVER 数据类型详解补充2

    数据类型 类型 描 述 bit 整型 bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off ...这种数据类型对存储一些常限定在

    SQL查询技巧(范例宝典)

     实例377 获取数据库中全部的存储过程 552  实例378 加密存储过程 553  10.23 触发器的应用 555  实例379 Insert触发器的应用 555  实例380 Update触发器在系统日志中的应用 556  实例381 ...

    C#开发经验技巧宝典

    0964 如何调用SQL Server存储过程 563 0965 如何生成SQL数据库脚本 564 0966 SQL Server 2000无法安装的解决办法 565 20.3 其他 565 0967 如何判断记录是否为NULL 565 0968 建立Oracle数据库连接 566 ...

    乘风广告联盟系统 v4.0 (Sql).rar

    7.可以限定推广链接只有发布在指定网站上或用户已经通过审核的网站上。 8.记录每天,每小时详细的广告显示量和点击量,及推广的IP和来源页面。 9.系统可以针对不同对象使用,站长和非站长成员,可以设置最大安全点击...

    C#程序开发范例宝典(第2版).part13

    实例164 设置图像中指定位置的像素值 230 实例165 在图像文件中实现自定义标记 232 实例166 获取指定点的RGB值 234 4.9 图像工具 235 实例167 获取图片类型 235 实例168 简单画图程序 236 实例169 看图工具 ...

    C#程序开发范例宝典(第2版).part08

    实例164 设置图像中指定位置的像素值 230 实例165 在图像文件中实现自定义标记 232 实例166 获取指定点的RGB值 234 4.9 图像工具 235 实例167 获取图片类型 235 实例168 简单画图程序 236 实例169 看图工具 ...

Global site tag (gtag.js) - Google Analytics