如何获取局域网中的所有SQLServer服务

如何获取局域网中的所有SQLServer服务,第1张

如何获取局域网中的所有 SQL Server 服务 作者:佚名 我一直想在我的应用程序中获得关于 SQL Server 更详细的信息。直到最近利用 SQLDMO(SQL Distributed Management Objects) 才得以实现这个想法。SQLDMO 提供了非常强大的功能,我们几乎可以利用程序实现任

如何获取局域网中的所有 SQL Server 服务作者:佚名 我一直想在我的应用程序中获得关于 SQL Server 更详细的信息。直到最近利用 SQLDMO(SQL Distributed Management Objects) 才得以实现这个想法。SQLDMO 提供了非常强大的功能,我们几乎可以利用程序实现任何 SQL Server 拥有的功能。在这篇文章中我将向您展示如何得到局域网中所有 SQL Servers 服务器、如何连接、如何获得服务器中的所有数据库。

SQLDMO 对像来自 SQL Server 2000 提供的动态连接库 SQLDMOdll。 这个 dll 本身是一个 COM 对像,首先你必须从类型库中引用Microsoft SQLDMO Object Library (Version 80) Delphi 会自动为你生成SQLDMO_TLBPAS文件,文件中包括了所有 COM 对象的接口。

在这里我们需要注意,由于引入的SQLDMO “TDatabase”和 “TApplication”和其它几个缺省类名与 Delphi 自带的类名冲突,所以自己可以修改成 _TypeName 的形式。或者其它的名字,我在这里改成 T_Application 、T_Database 等。

我们下一步要做的是在我们的程序中引入单元文件 SQLDMO_TLBPAS 。 应用程序单元名称是 SqlServers

服务器列表中是局域网中所有的 SQL SERVER 服务器,选择服务器后输入用户名和密码,下拉数据库列表,程序会列出此服务器中的所有数据库

程序源代码如下:

unit SqlServers;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, ComCtrls , SQLDMO_TLB;//注意别忘了引入此文件

type

TdmoObject = record

SQL_DMO : _SQLServer;

lConnected : boolean;

end;

type

TFormServersList = class(TForm)

Label1: TLabel;

Label2: TLabel;

CB_ServerNames: TComboBox;

CB_DataNames: TComboBox;

Label3: TLabel;

Label4: TLabel;

Ed_Login: TEdit;

Ed_Pwd: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure FormCreate(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure CB_DataNamesDropDown(Sender: TObject);

private

server_Names : TStringList;

//对象集合

PdmoObject : array of TdmoObject;

//获取所有的远程服务器

Function GetAllServers(ServerList : TStringList) : Boolean;

{ Private declarations }

public

{ Public declarations }

end;

var

FormServersList: TFormServersList;

implementation

{$R DFM}

{ TForm1 }

Function TFormServersListGetAllServers(ServerList : TStringList) : Boolean;

var

sApp : _Application ;

sName : NameList;

iPos : integer;

begin

Result := True ;

try

sApp := CoApplication_Create ; //创建的对象不用释放,delphi 自己会释放

sName := sAppListAvailableSQLServers;

except

Result := False;

Exit;

end;

if sNameCount > 0 then // 之所以iPos 从1开始,是因为0 位置为空值即 ' '

for iPos := 1 to sNameCount - 1 do

begin

CB_ServerNamesItemsAdd(sNameItem(iPos));

ServerListAdd(sNameItem(iPos));

end;

end;

procedure TFormServersListFormCreate(Sender: TObject);

var

lcv : integer;

begin

server_Names := TStringListCreate;

if not GetAllServers(server_Names) then

begin

ApplicationMessageBox('无法获取服务器列表,可能缺少客户端DLL库函数','错误提示',MB_OK);

exit;

end;

for lcv := 0 to server_NamesCount - 1 do

begin

SetLength(PdmoObject,lcv + 1);

with PdmoObject[lcv] do

begin

SQL_DMO := CoSQLServerCreate;

SQL_DMOName := Trim(server_Names[lcv]);

//登陆安全属性,NT 身份验证

SQL_DMOLoginSecure := false;

// 设置一个连接超时

SQL_DMOLoginTimeout := 3;

//自动重新登陆,如果第一次失败后

SQL_DMOAutoReconnect := true;

SQL_DMOApplicationName := server_Names[lcv];

lConnected := false;

end;

end;

end;

procedure TFormServersListFormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

server_NamesFree;

end;

procedure TFormServersListFormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := CaFree;

end;

procedure TFormServersListFormShow(Sender: TObject);

begin

if CB_ServerNamesItemsCount > 0 then //列举所有服务器名字

CB_ServerNamesText := CB_ServerNamesItemsStrings[0];

end;

procedure TFormServersListBitBtn2Click(Sender: TObject);

begin

Close ;

end;

procedure TFormServersListCB_DataNamesDropDown(Sender: TObject);

var

icount ,Server_B : integer;

begin

CB_DataNamesClear;

ScreenCursor := CrHourGlass;

Server_B := CB_ServerNamesItemsIndexOf(CB_ServerNamesText) ;

with PdmoObject[Server_B]SQL_DMO do

begin

if not PdmoObject[Server_B]lConnected then

try

Connect(Name,Trim(Ed_LoginText),Trim(Ed_PwdText));

except

ScreenCursor := CrDefault ;

ApplicationMessageBox('请检查用户名或密码是否正确','连接失败',MB_OK);

Exit ;

end;

if not VerifyConnection(SQLDMOConn_ReconnectIfDead) then

begin

ShowMessage('在试图连接到SQL SERVER 2000 时出现错误' + #10#13 +

'确信是否加在了动态连接库SQLDMODLL');

exit;

end else

PdmoObject[Server_B]lConnected := True ;

DatabasesRefresh(true);

for icount := 1 to DatabasesCount do

CB_DataNamesItemsAdd(DatabasesItem(icount,null)name);

end;

ScreenCursor := CrDefault ;

end

end

怎么远程登陆服务器操作?

上面那些人说的都是错的

自己找书来看看吧

另外,楼上连题目都没看清楚

人家是说在两个地方的内网,按弗的方法怎么可能能访问到。比方,我在北京大学的校园网IP是10。46。193。25

你在广州市 的内部网,内网IP是192。168。1。2

按楼上说的,怎么可能能访问。

怎样远程进入网站服务器?

如果托管的主机是windows操作系统利用3棱89远程可以登录 登录工具是自带的,可以在程序---附件中有个远程连接,填写IP地址和端口号登录 当然这需要是你自己的主机。如果不是,托管商会给你个FTP账号,你可以上传代码如果是linux操作系统,可以用ssh登录

如何在远程桌面服务器上打开任务管理器?

不关掉这个远程的情况下,再连接一个,应该可以直接进入系统

怎样连接远程服务器,但是本地访问

1 打开开始里的附件-远程桌面连接。

2 点击选项选择本地资源选项卡。

3 点击详细信息展开将会看到驱动器的多选框。

4 选择你需要勾选的驱动器,点击确定,然后选择常规在计算机一栏中输入你想要远程的主机IP地址。

5 点击连接讲出现一个提示框如下图所示,显示可以操作本地资源,请注意安全,继续点击连接。

6 现在远程成功后就可以操作本地磁盘里的文件。

分享

服务器如何开远程?

在我的电脑右键-属性-远程里勾选 允许用户远程连接到此计算机,然后在防火墙上开启3389端口,一般是在本地连接右键-属性-高级-设置里面开启例外的,当然你把防火墙关了也可以,但不建议这样做,最后就是在路由上开启3389的远程到你这台内网的服务器,当然,如果你的服务器是直连外网就不用做这一步了,还有就是你用来做远程的用户必须设置密码,不然对方就算连进来了,也无法进入服务器,希望我的回答对你有帮助。

远程服务器的网络被我禁止了,现在无法打开远程服务器,怎样处理才能打开呢?

这个需要本地操作的,两个办法 ,一就是IPMI 远程解决 二就是 叫机房同事解决

win7的telnet远程服务如何开启?

win7下默认是禁用telnet服务的

重新启动Telnet方法如下:

1、如果你直接到控制面板的管理工具里的服务项里去找telnet的话,那是徒劳无功

的,因为默认根本就没有这一服务。当然,你可以通过如下方式搞定。“控制面

板” 一〉“程序” 一〉“打开或关闭windows功能”,在里面你可以看到许多服务项,选

择“telnet服务器”和“telnet客户端”确定即可。哗样你再回“服务项”或者

servicesmsc里面就可以看到telnet啦,

2、通过“控制面板”--〉“管理工具”一〉“服务”或者“servicesmsc进入服务项列表

之后,找到telnet,可以看到它是被禁用的,此时你需要在“禁用”右键选择“属

性”并在里面将“禁用”改为“手动”,然后再启动状态栏右键选择“启动”。这样

你机器的telnet服务就启动啦。

小鸟云服务器niaoyun实例创建好之后,您可以使用以下任意一种方式登录服务器:

远程桌面连接(MicrosoftTerminalServicesClient,MSTSC):采用这种方式登录,请确保实例能访问公网。如果在创建实例时没有购买带宽,则不能使用远程桌面连接。

管理终端VNC:无论您在创建实例时是否购买了带宽,只要您本地有网页浏览器,都可以通过管理控制台的管理终端登录实例。

使用远程桌面连接(MSTSC)登录实例

打开开始菜单>远程桌面连接,或在开始菜单>搜索中输入mstsc。也可以使用快捷键Win+R来启动运行窗口,输入mstsc后回车启动远程桌面连接。

在远程桌面连接对话框中,输入实例的公网IP地址。单击显示选项。

输入用户名,如小鸟云默认为niaoyun。单击允许我保存凭据,然后单击连接。这样以后登录就不需要手动输入密码了。

在工作中,经常需要远程连接到服务器上,然而在公司里,老总、同事都需要连接到服务器上的,而默认的Win2003操作系统最大连接数是2,这样一来,问题也就来了,常常遇到“终端服务器超出最大连接数”,导致无法正常登陆服务器。下面讲解在网上流传的几种方法,来解决这一问题。

解决方法一:用“注销”方式退出远程桌面,而不是直接关闭窗口;

解决方法二:踢出已经断开的连接用户;

1、首先通过各种方法连接到服务器上(telnet);

2、上去后,查看登陆用户列表。输入命令:query user;

这样你就可以看出有何不同来啦,可以根据你的具体情况而定的。ID为0的用户就是本地登陆的,而在State中看提示,当提示为已断开,则说明用户已经断开还占用着系统资源和通道,这样就可以把该用户踢掉。输入logoff ID,即踢除相应ID的用户。

解决方法三:限制已断开连接的会话存在时间;(推荐)

一般情况下,我们在维护远程服务器时,不可能长时间在线,但是系统默认的却是只要登录就不再断开。因此,我们可以修改这一默认设置,给它指定一个自动断开的时间即可。

可以在Windows 2003 服务器上通过组策略中设置一下来解决问题:单击“开始 → 运行”,输入“gpeditmsc”,回车后打开组策略窗口,然后依次定位到“计算机配置 → 管理模板 → Windows 组件 → 终端服务 → 会话”,然后在右侧窗口中双击“为断开的会话设置时间限制”,在打开的窗口中将“结束断开连接的会话”时间设置为5分钟,或者设置为空闲就断开。或在远程服务器上打开“运行”窗口,输入“tsccmsc”连接设置窗口。然后双击“连接”项右侧的“RDP-Tcp”,切换到“会话”标签,选中“替代用户设置”选项,再给“结束已断开的会话”设置一个合适的时间即可。

解决方法四:增加连接数量,即设置最大连接数再多些;

默认情况下允许远程终端连接的数量是2个用户,我们可以根据需要适当增加远程连接同时在线的用户数。

单击“开始→运行”,输入“gpeditmsc”打开组策略编辑器窗口,依次定位到“计算机配置 → 管理模板 → Windows 组件 → 终端服务”,再双击右侧的“限制连接数量”,将其TS允许的最大连接数设置大一些即可。

经过上面两个配置(方法三&方法四),基本上就可以保证远程终端连接时不再受限。但仍有人反映,当前同时只有一个用户进行连接,却提示超出最大允许链接数,这又是什么原因呢?出现这种情况是因为操作不当所造成的。在上一个帐户登录远程桌面后退出时,没有采用注销的方式,而是直接关闭远程桌面窗口,那么导致该会话并没有被释放,而是继续保留在服务器端,占用了连接数,这样就会影响下一个用户的正常登录了。

解决方法五:限制用户会话数;

对Terminal Services进行限制,使得一个用户仅仅能够连接一次。对于Windows Server 2003,请在Terminal Services Configuration(Terminal Services配置)中将“限制每位用户只有拥有一个会话”(Restrict each user to one session)设置为“是”(Yes)。此外,您可以将“限制终端服务用户使用单个远程会话”组策略设置为“启用”。

注意:版本不一样解决的方法有异!

A:这是因为Windows 2003中设置了最大允许连接数限制,而你每次连接后可能没有注销而是直接关闭,导致连接数超过了最大连接数。你可以在Windows 2003 服务器上通过组策略中设置一下来解决问题:单击“开始→运行”,输入 “gpeditmsc”,回车后打开组策略窗口,然后依次定位到“计算机配置 → 管理模板 → 终端服务 → 会话”,然后在右侧窗口中双击“为断开的会话设置时 间限制”,在打开的窗口中将“结束断开连接的会话”时间设置为5分钟。最好的解决方法还是你每次断开连接时通过注销的方式。

B:经常多人管理服务器的朋友一定遇到过当自己终端连接远程计算机的时候却提示“终端连接超出了最大连接”的提示吧?这是因为windows2003仅支持2个终端用户的登陆。当这种情况出现后,多数人选择的是给机房打电话进行重启服务器。可是带来的损失也是显而 易见的。那么我们有什么办法来解决呢?方法当然是有的。我们只需要在一台2003的机器上运行“tsmmcmsc”就可以打开远程桌面连接,在这里我们 添加一个新的连接,输入对方的IP地址帐号和密码后就可以成功登陆到对方的桌面中,这时可以再踢下一个用户。就可以解决终端连接数超过最大的问题。

C:开始 → 控制面版 →

当在Tableau中连接MySQL数据库时出现“无法连接服务器,检查服务器是否正在运行以及您是否有权访问”等错误提示时,可能是以下原因之一:

1MySQL服务器没有运行:请确认MySQL数据库服务器是否已经启动。可以检查MySQL的状态或者重启MySQL服务,看是否能够正常连接。

2MySQL数据库没有正确配置端口:请确保已经正确设置MySQL数据库的端口号,并在Tableau中正确输入该端口号。默认情况下,MySQL使用3306端口。

3防火墙阻止了连接:如果您的计算机中安装了防火墙,可能会阻止Tableau与MySQL数据库的连接。请检查您的防火墙设置,确保Tableau可以访问MySQL端口。

4数据库权限问题:请确保您在连接MySQL数据库时使用的用户名和密码具有足够的权限来访问该数据库。可以在MySQL服务器上检查用户的权限设置,或者使用管理员账号登录MySql进行授权操作。

5MySQL驱动程序问题:如果您安装的MySQL驱动程序版本较老,可能会导致连接失败。建议升级到最新版本的MySQL驱动程序,并重新尝试连接。

6检查MySQL服务器是否正在运行。您可以打开命令行终端并输入“netstat -an”来检查服务器是否在运行。

7确认您的MySQL用户名和密码是否正确。这些都是在MySQL服务器上配置的,因此请确保您在Tableau中使用的用户名和密码与服务器上的相同。

8确认MySQL服务器是否开放了需要的端口。默认情况下,MySQL服务器端口是3306,如果您的MySQL服务器使用了不同的端口,则需要更新Tableau中的端口配置。您可以在Tableau“连接到数据”窗口中的MySQL连接设置中更改端口。

9确认您的计算机是否允许访问MySQL服务器。在某些情况下,您的计算机本身的安全设置可能会阻止访问MySQL服务器。您可以检查防火墙设置,以确保Tableau具有访问MySQL服务器的权限。

总的来说,当在Tableau中连接MySQL数据库时出现连接失败的错误提示,需要仔细检查以上几个问题,找出原因并解决,才可以成功连接到MySQL数据库。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何获取局域网中的所有SQLServer服务

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情