我正在开发一个大约5年前使用C#和mssql 2000开发的桌面应用程序。这个应用程序使用OPENROWSET加载一些xls文件,直到我工作的机构升级数据库(比如msserver 2019或类似的),OPENTOWSET停止工作为止。
尽管我知道有很多程序和方法可以解决这个问题(因为我不能在服务器上应用这个问题),但我公司的DBA告诉我,解决这个问题的唯一方法是给应用程序用户授予管理权限,而他因为安全规则而不能这样做--把问题交给我。现在我必须用其他的东西来代替OPENROWSET。
所以问题是:这是真的吗?熟练的DBA没有办法让OPENROWSET与常规/非管理用户一起在远程DB上工作,修复有关权限和链接服务器的错误吗?OPENROWSET是否“成熟或安全-足够让它在现在的生产服务器上运行?”
发布于 2020-08-18 15:29:20
看起来您正在尝试从数据库中打开excel文件。在这种情况下,默认设置将不允许这样做:
只有当指定的提供程序的
注册表选项显式设置为0,并且启用了Ad分布式查询高级配置选项时,才能使用DisallowAdhocAccess OPENROWSET从OLE DB数据源访问远程数据。当未设置这些选项时,默认行为不允许临时访问。
访问远程OLE DB数据源时,受信任连接的登录标识不会从客户端连接到正在查询的服务器的服务器自动委派。必须配置身份验证委托。
听起来这可能是在以前的数据库中配置的,但是DBA现在认为这是一个安全问题。他说的对不对,这在很大程度上取决于你如何使用它,但这听起来确实是最好避免的事情。
最好在C#应用程序中加载excel文件,然后将大量数据发送到sql server保存。
https://stackoverflow.com/questions/63471748
复制相似问题