Sql server 使用SP_OACreate、SP_OAMethod等。。是否存在安全风险?

Sql server 使用SP_OACreate、SP_OAMethod等。。是否存在安全风险?,sql-server,tsql,Sql Server,Tsql,我被告知在SQL Server 2000中使用SP_OACreate、SP_oa方法存在安全风险 我在程序集中使用强名称,并存储在SQL Server计算机上的GAC中 安全影响/妥协是什么 不确定您在尝试什么,但对于SQL 2000,您应该阅读 风险在于您必须向用户授予SP_OACreate上的EXECUTE权限。 这意味着,如果他们随后找到了执行任意SQL的方法,他们可以创建服务器上任何可用库的实例。 另一个问题是,SP_OACreate在进程中加载库,因此如果它爆炸,您的服务器也会爆炸。不

我被告知在SQL Server 2000中使用SP_OACreate、SP_oa方法存在安全风险

我在程序集中使用强名称,并存储在SQL Server计算机上的GAC中


安全影响/妥协是什么

不确定您在尝试什么,但对于SQL 2000,您应该阅读

风险在于您必须向用户授予
SP_OACreate
上的
EXECUTE
权限。 这意味着,如果他们随后找到了执行任意SQL的方法,他们可以创建服务器上任何可用库的实例。
另一个问题是,
SP_OACreate
在进程中加载库,因此如果它爆炸,您的服务器也会爆炸。

不确定您的尝试是什么,但对于SQL 2000您应该阅读

风险在于您必须向用户授予
SP_OACreate
上的
EXECUTE
权限。 这意味着,如果他们随后找到了执行任意SQL的方法,他们可以创建服务器上任何可用库的实例。
另一个问题是,
SP_OACreate
在进程中加载库,因此如果它爆炸,服务器也会爆炸。

这些扩展存储过程允许从SQL server内部实例化OLE(“ActiveX”)对象。创建MSXML对象并让它作为HTTP POST发送一些数据库数据的典型用例

在我看来,sp_OACreate etc程序有两个问题:

  • 默认情况下,只有sysadmin角色中的主体才能执行这些操作。授予和测试这些权限是一件痛苦的事情。(您必须将用户添加到主数据库,并授予他们在该数据库中的权限。)

  • 授予的许可非常广泛。你不能只说“好的用户,你有权创建这种对象并使用它执行xyz”,而应该说“好的用户,你有权创建任何你想要的OLE对象并执行任何你想要的操作。”这是一个相当宽泛的画面


这些扩展存储过程允许从SQL Server内部实例化OLE(“ActiveX”)对象。创建MSXML对象并让它作为HTTP POST发送一些数据库数据的典型用例

在我看来,sp_OACreate etc程序有两个问题:

  • 默认情况下,只有sysadmin角色中的主体才能执行这些操作。授予和测试这些权限是一件痛苦的事情。(您必须将用户添加到主数据库,并授予他们在该数据库中的权限。)

  • 授予的许可非常广泛。你不能只说“好的用户,你有权创建这种对象并使用它执行xyz”,而应该说“好的用户,你有权创建任何你想要的OLE对象并执行任何你想要的操作。”这是一个相当宽泛的画面


我正在解析在给定表中存储为ntext的sql字符串,并以行集的形式返回结果(客户端希望结果出现在数据表中)。PS:必须为需要执行权限的任何用户授予执行权限。。我能看到的唯一区别是,我们必须显式地将执行权限设置为SP_OACreate etc。我正在解析在给定表中存储为ntext的sql字符串,并将结果返回为行集(客户机期望数据表中的结果)。PS:必须为需要执行权限的任何用户授予执行权限。。我能看到的唯一区别是,我们必须显式地将执行权限设置为SP_OACreate等。。