如何检查连接的 SQL Server 是否在本地计算机上?
有没有办法使用 C# 判断我在 Ado.Net 中连接的 Sql Server 是否位于本地计算机而不是远程计算机上?
我想知道我是否有权访问 SQL Server 存储的文件系统,例如它的备份文件。这将使我能够确定,如果我让 SQL Server 创建一个备份文件,我是否能够以编程方式删除该备份文件。我读过有关 xp_cmdshell 等的内容,但我相信最好避免它们。
Is there any way of telling, using C#, if the Sql Server I'm connected to in Ado.Net is on the local machine rather than remote?
I'm wanting to know whether I have access to the file system where SQL Server stores, for example it's backup files. That would let me determine whether I would be able to delete a backup file programatically if I get SQL Server to create one. I have read about xp_cmdshell and such like, but I believe it's best to avoid them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
SERVERPROPERTY('MachineName')
:您不应使用
HOST_NAME()
因为它返回工作站的名称,换句话说就是客户端的名称,并且总是显示您已在本地连接。Use
SERVERPROPERTY('MachineName')
:You should not use
HOST_NAME()
because that returns the name of the workstation, in other words the name of the client, and is always going to appear that you're connected locally.只需检查 System.IO.File.Exists 是否 = True。即使文件位于网络上,用户也可能拥有权限(或被授予权限)。
Just check if System.IO.File.Exists = True. Even if the files are on a network, the user may have permission (Or be given permission).