我想我将为各种功能提供单独的数据源。几乎所有的cfqueries都是select语句,因此我的默认数据源将在管理员中关闭所有内容(select除外)。
但对于“插入/更新/删除”数据源,我想看看我是否可以最小化它的权利。
每当我在Microsoft SQL Server中为我的ColdFusion数据源设置用户时,我总是在安全,用户和新用户之下。 在“拥有架构”下,我已经养成了检查db_owner的习惯,在“角色成员”下,我检查了db_owner。
我让它以这种方式工作,并没有回头。所以现在我回头想知道,这是否为我的ColdFusion数据源提供了比它需要更多的权利? “拥有架构”和/或“角色成员”下是否有其他选项可以最大限度地减少我的曝光?
哎呀,只要我知道要关闭哪些功能,我就可以减少功能的数量。例如,我从不改变ColdFusion的表格。
有些人建议只允许存储过程,并且永远不允许直接从应用程序更新表,但我不遵循该建议。
答案 0 :(得分:3)
看起来你要做的就是让你的数据源/连接对SQL Server的访问权限最小。
虽然ColdFusion数据源确实可以限制可以运行哪种语句,但您确实希望SQL连接能够进行限制。假设您有一个名为Employee_Info
的数据源,但它被用于真正应该只读取Employee_Info
数据的ColdFusion应用程序。
您应该在SQL Server上创建只读登录。您甚至可以将其称为Employee_InfoRO
另见
How do I limit the permissions of a C# program to read only on an SQLServer Database?
这是该问题的答案之一的图像
此链接也可能有用
When you create a new login in SQL Server it selects db_owner by default
为什么不将ColdFusion限制为选择?
ColdFusion不是本机SQL Server引擎。它并不真正了解SQL语句的含义,即SQL Server引擎的工作。 ColdFusion仅对选择,插入,更新和删除的内容进行了最佳猜测。它通过字符串比较来实现,并且非常繁重。 SQL Server引擎比ColdFusion更了解数据库安全性。