如何检查连接的 SQL Server 是否在本地计算机上?

发布于 2024-09-13 20:33:30 字数 201 浏览 6 评论 0原文

有没有办法使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2024-09-20 20:33:30

使用 SERVERPROPERTY('MachineName') :

Windows 计算机名称
服务器实例正在运行。

对于集群实例,一个实例
在虚拟机上运行的 SQL Server
微软集群服务上的服务器,
它返回虚拟的名称
服务器。

您不应使用 HOST_NAME()因为它返回工作站的名称,换句话说就是客户端的名称,并且总是显示您已在本地连接。

Use SERVERPROPERTY('MachineName'):

Windows computer name on which the
server instance is running.

For a clustered instance, an instance
of SQL Server running on a virtual
server on Microsoft Cluster Service,
it returns the name of the virtual
server.

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.

靑春怀旧 2024-09-20 20:33:30

只需检查 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文