2

我想我将为各种功能提供单独的数据源。几乎我所有的 cfqueries 都是 select 语句,所以我的默认数据源将在管理员中关闭所有内容(select 除外)。

但是对于“插入/更新/删除”数据源,我想看看我是否也可以最小化它的权利。

每当我在 Microsoft SQL Server 中为我的 ColdFusion 数据源设置用户时,我总是会进入安全性、用户、新用户。在“Owned Schemas”下,我养成了检查 db_owner 的习惯,在“Role Members”下,我检查了 db_owner。

我让它以这种方式工作并且没有回头。所以现在我回过头来想知道,这是否给了我的 ColdFusion 数据源比它需要的更多的权利?“拥有的模式”和/或“角色成员”下是否有其他选项可以最大限度地减少我的曝光?

哎呀,只要我知道要关闭哪些功能,我就可以减少功能的数量。例如,我从不更改 ColdFusion 中的表。

有些人建议只允许存储过程,决不允许直接从应用程序更新表,但我没有遵循这个建议。

4

1 回答 1

3

看起来您要做的是让您的数据源/连接对 SQL Server 的访问量最少。

虽然 ColdFusion 数据源确实可以限制可以运行的语句类型,但您确实希望您的 SQL 连接来执行限制。假设您有一个名为的数据源,Employee_Info但它被用于真正应该只读取Employee_Info数据的 ColdFusion 应用程序。

你应该做的是在 SQL Server 上创建一个只读登录。你甚至可能想调用它Employee_InfoRO

另见

如何将 C# 程序的权限限制为只读 SQLServer 数据库?

这是该问题的答案之一的图像

在此处输入图像描述

这个链接也可能有用

在 SQL Server 中创建新登录时,默认情况下会选择 db_owner

为什么不将 ColdFusion 限制为 Select?

ColdFusion 不是本机 SQL Server 引擎。它并不真正了解 SQL 语句的含义,那是 SQL Server 引擎的工作。ColdFusion 只对什么是选择、插入、更新和删除进行最佳猜测。它是通过字符串比较来实现的,而且非常重。SQL Server 引擎比 ColdFusion 更了解数据库安全性。

于 2013-12-03T06:07:43.130 回答