【发布时间】:2010-11-26 14:05:26
【问题描述】:
我在网上搜索了一下,但找不到任何能真正抓住问题或涵盖如何在数据库上设置用户/角色的基础的东西。
基本上,会有一个用户用于从应用程序(在本例中为 Web 应用程序)访问数据库,该用户需要访问数据库以执行常规数据库操作(选择、插入、更新、删除)和执行存储过程(使用 exec 在其他存储过程/UDF 中运行存储过程)。
然后,我们还会有一个主管理员用户(这很简单)。
我目前有一个开发环境,在我看来,我们并没有真正很好地管理安全性(应用程序使用具有 db_owner 角色的用户,尽管它是一个 Intranet 应用程序)。尽管它是一个 Intranet 应用程序,但我们仍然牢记安全性,并希望了解开发人员为此类环境设置用户/角色的一些方式。
编辑:Web 应用程序和 SQL Server 位于不同的机器上。
编辑:忘了提到使用了需要直接读/写访问的 ORM。
问题: 设置用户访问应用程序的“最佳实践”是什么?将适用哪些角色?有哪些注意事项?
【问题讨论】:
-
网络应用是否在冒充呼叫者?
-
不是为了访问 SQL Server(我们将它单独用于 Reporting Services)。忘了说我们的 Web 应用程序在它自己的专用盒子上,而数据库也在一个单独的专用盒子上。
-
坦率地说,如果您的 ORM 需要直接读/写,是时候切换到理解存储过程的 ORM。
-
@blowdart: 或者完全拒绝 ORM :)
-
好吧,如果我要在存储过程中编写所有读/写代码并让我的 ORM 调用这些代码,那将扼杀 ORM 的目的,即不必编写所有代码。
标签: sql sql-server security