SSIS包跨账号访问报错,如何配置全员访问权限?
这问题我之前帮团队排查过好几次,核心就是SSIS包关联的配置文件、数据库资源或者项目文件的权限没给到位,咱们一步步来搞定:
检查SSIS配置文件的权限
先找到包依赖的.dtsConfig配置文件(如果用了配置文件的话),右键点击文件→「属性」→「安全」标签,给需要访问的用户组(比如公司的Domain Users组)添加读取和执行权限。要是你的包是直接存储在SQL Server的SSISDB里,那直接看下面的SSISDB权限配置。确保数据库连接的权限合规
如果包用的是OLE DB/ODBC这类数据库连接,别在连接字符串里硬编码你的个人凭据!尽量用Windows身份验证,这样其他用户用自己的域账号就能自动认证。同时要给这些用户授予目标数据库的读取权限(只是打开包的话,读取元数据就足够了)。放开SSIS项目文件的文件夹权限
要是你的SSIS项目是存在本地文件系统里的(比如.dtproj项目文件),一定要给项目所在的整个文件夹设置用户组的读取权限,包括文件夹里的所有包文件、依赖资源,不能只给单个文件开权限。配置SSISDB的访问权限(针对部署到SSISDB的包)
打开SQL Server Management Studio连接到Integration Services,找到你的包所在的SSISDB文件夹,右键→「属性」→「权限」,添加对应的用户组,授予读取权限(如果需要让用户能运行包,再加上执行权限)。另外,确保用户属于SSISDB的ssis_reader角色,或者至少有公共角色的权限。Visual Studio运行权限排查
如果用户是用Visual Studio打开项目,别让他们用管理员身份运行VS(除非真的需要),管理员权限会导致权限隔离,可能读不到普通权限下的文件。同时确认用户对项目文件夹有读取权限,VS能正常加载项目文件。
最后可以让用户测试一下,要是还报错,让他们把具体的错误日志发出来,里面会明确指出是哪个文件或者数据库访问失败,针对性调整权限就行。
内容的提问来源于stack exchange,提问作者AskMe

