SQL Server xp_filelogin不同,结果不同



我正在创建一个需要检查文件是否存在的存储过程。它使用master.dbo.xp_fileExist

问题是xp_fileExist结果似乎根据我使用的SQL Server登录而改变。似乎只有当登录具有SYSADMIN服务器角色时才有效。

因此,如果我使用ACCOUNT:ACC1, PASSWORD:PWD1登录,并且ACC1没有SYSADMIN服务器角色,我得到以下结果:

exec master.dbo.xp_fileExist 'adsnt.dll'
File Exists File is a Directory Parent Directory Exists
----------- ------------------- -----------------------
0           0                   0

如果我然后进入SSMS并将SYSADMIN角色分配给帐户ACC1,我得到以下结果:

File Exists File is a Directory Parent Directory Exists
----------- ------------------- -----------------------
1           0                   1

我似乎找不到关于这个的任何文档。对这类查询的大多数响应表明,登录不影响文件访问,相反,它取决于SQL Server运行的服务帐户。但很明显,事实并非如此(或者,至少,这不是全部)。有人知道这是怎么回事吗?

——修改

exec master.dbo。xp_fileExist adsnt.dll">

——To this
SELECT * FROM sys。dm_os_file_exists (adsnt.dll)

不需要SysAdmin角色就可以工作

最新更新