当前位置:  开发笔记 > 数据库 > 正文

SQL Server身份验证还是集成安全性?

如何解决《SQLServer身份验证还是集成安全性?》经验,为你挑选了2个好方法。

我们有一些企业内部网用户使用WinForms应用程序来处理后面有SQL服务器的系统.集成安全性已设置,允许所有用户更新和删除权限,其中应用程序安全性限制表更新的方式和位置.

但是,某些用户可以使用SQL查询工具,并直接访问数据库以构建报告.但是,通过集成安全性,它们具有应该没有的表的默认更新权限,因为应用程序将规则应用于更新.

这是一个更合适的例子,为应用程序提供中央SQL身份验证登录,而用户获得集成安全性的只读权限吗?



1> Eric Sabine..:

正如Jon所说,存储过程可以为您提供直接表修改的保护.还有其他选择.您可以使用SQL Server的"应用程序角色"(通过sp_setapprole proc).这使您可以继续为每个人使用单独的ID,但仅在应用程序连接时(通过前端)提升用户权限.

使用共享ID的一个主要缺点是你忘记了谁将SQL提交到服务器,尽管如果它们都是内部的,你可以获得机器名称.

但是还有其他一些问题.听起来好像您的用户可以连接到数据库并随意运行查询.由于直接连接的SQL会话中的用户行为,您在应用程序中存在严重的停机风险.如果您可以将其关闭,您可能希望尝试创建一个报告数据库,该数据库会按照您的业务可以容忍的时间间隔(即每天)进行更新.HTH



2> Jon..:

我假设你的问题是你的应用程序直接执行sql语句.如果您可以重构它以便它执行存储过程,您可以授予exec对过程的权限并拒绝直接更新表.但这可能无法实现,具体取决于您的应用程序的功能.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有