微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OPENROWSET是“生产安全”的方法吗?

如何解决OPENROWSET是“生产安全”的方法吗?

我正在使用大约5年前使用C#和mssql server 2000开发的桌面应用程序。 这个应用程序使用OPENROWSET加载一些xls文件,直到在我处理升级数据库(到诸如msserver 2019之类的数据库)的机构中正常工作,并且OPENTOWSET停止工作。

尽管知道有很多程序和方法可以解决此问题(我无法应用服务器上运行的coz数据库),但是我公司的DBA告诉我解决此问题的唯一方法是为应用程序提供admin-特权用户,由于安全规则,他无法执行此操作-将问题交给我。现在,我必须用其他东西替换OPENROWSET。

所以问题是:是真的吗? 熟练的DBA无法让OPENROWSET与普通/非管理员用户一起在远程DB上工作,从而解决有关权限和链接服务器的错误吗? OPENROWSET是否“足够成熟”才能使其在当今的生产服务器上运行?

解决方法

您似乎正在尝试从数据库中打开excel文件。在这种情况下,默认设置将不允许这样做:

https://docs.microsoft.com/en-us/sql/t-sql/functions/openrowset-transact-sql?view=sql-server-ver15#remarks

OPENROWSET可用于从OLE DB数据源访问远程数据 仅当DisallowAdhocAccess注册表选项明确设置为 指定的提供者为0,并且临时分布式查询 启用高级配置选项。如果没有这些选项 设置,默认行为不允许临时访问。

访问远程OLE DB数据源时,登录标识为 不会自动从服务器上委派受信任的连接 客户端连接到正在查询的服务器。 必须配置身份验证委派。

听起来这可能是以前为以前的数据库配置的,但是现在看到这一点的DBA认为这有点安全性问题。他是否正确,在很大程度上取决于您如何使用它,但这听起来确实可以避免。

最好在C#应用程序中加载excel文件,然后将BULK数据发送到sql服务器进行保存。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。