PostgreSQL中的Workstationid属性
本文关键字:属性 Workstationid 中的 PostgreSQL | 更新日期: 2023-09-27 18:16:19
这里我需要得到一个字符串,该字符串标识使用c#的PostgreSQL数据库客户端。下面是一个例子:
:
private static void OpenNpgsqlConnection(string connectionString)
{
using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("WorkstationId: {0}", connection.WorkstationId);
}
}
误差:
'Npgsql.NpgsqlConnection' does not contain a definition for 'Workstationid'.
您似乎指的是MS SQL特定属性SQLConnection.
的WorkstationId
这是一个MS SQL特定的属性。它不存在于nPgSQL,当然你可以添加它。
MSDN中的文档毫无用处,因此很难判断它的实际用途。随便猜一下,我想你可能指的是PostgreSQL的application_name
——一种让服务器从存储过程或函数中找到客户端信息的方法。
客户端驱动程序或应用程序必须设置application_name
;没有任何东西会自动设置为"网络名称"。(如果客户端不是Windows盒子,这又意味着什么呢?)您的应用程序可以在连接字符串中设置application_name
,也可以通过显式的SET
命令设置。
您还可以运行任意的SET
命令。例如,你可能决定在myapp.workstationid
连接属性中存储"工作站名称"。所以你:
SET myapp.workstationid = 'BOBSCOMPUTER';
从你的应用程序,在建立初始连接后。
存储过程现在可以通过current_setting('myapp.workstationid')
访问它。
注意,在这两种情况下,有能力发送原始SQL的用户可以用他们想要的任何东西替换这些设置。因此,为了安全起见,不要使用它们。