GVKun编程网logo

sql-server – 使用SMO重新启动SQL Server实例(如何重新启动sql server)

5

本文将介绍sql-server–使用SMO重新启动SQLServer实例的详细情况,特别是关于如何重新启动sqlserver的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主

本文将介绍sql-server – 使用SMO重新启动SQL Server实例的详细情况,特别是关于如何重新启动sql server的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录、SQL Server中Linked Server及Remote Server的使用示例、SQL Server在本地计算机上用SSMS(SQL Server Management Studio)登录不上,错误消息:(Microsoft SQL Server, Error: 18456)、sql-server – SQL Server 2005:SQL Server身份验证的安全性如何?的知识。

本文目录一览:

sql-server – 使用SMO重新启动SQL Server实例(如何重新启动sql server)

sql-server – 使用SMO重新启动SQL Server实例(如何重新启动sql server)

我的C#应用​​程序使用SMO对用户选择的sql Server实例进行各种操作.特别是,它改变了认证模式:
ServerConnection conn = new ServerConnection(connection);
Server server = new Server(conn);

server.Settings.LoginMode = ServerLoginMode.Mixed;

更改登录后,应重新启动更多实例.但是,我在SMO中找不到任何方式来重启所选实例.

我试图谷歌这个,但只发现了一堆枚举正在运行的服务并将其名称与sql服务器服务名称进行比较的示例.我不喜欢这种方式,因为它容易出错并且依赖于Microsoft当前命名sql服务器实例的方式.

有没有办法在SMO中重新启动所选实例?

解决方法

添加对System.ServiceProcess的引用.
using System.ServiceProcess;

public static void RestartService(string sqlInstanceName) {
    if (string.IsNullOrEmpty(sqlInstanceName)) {
        throw new ArgumentNullException("sqlInstanceName");
    }

    const string DefaultInstanceName = "MSsqlSERVER";
    const string ServicePrefix = "MSsql$";
    const string InstanceNameSeparator = "\\";

    string serviceName = string.Empty;
    string server = sqlInstanceName;
    string instance = DefaultInstanceName;

    if (server.Contains(InstanceNameSeparator)) {
       int pos = server.IndexOf(InstanceNameSeparator);
       server = server.Substring(0,pos);
       instance = sqlInstanceName.Substring(pos + 1);
    }

    serviceName = ServicePrefix + instance;
    ServiceController sc = new ServiceController(serviceName,server);
    sc.Stop();
    sc.WaitForStatus(ServiceControllerStatus.Stopped,TimeSpan.FromSeconds(30));
    sc.Start();
    sc.WaitForStatus(ServiceControllerStatus.Running,TimeSpan.FromSeconds(30));
}

SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录

SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录

SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录

 

在项目开发过程中通常连接SQL Server时需要用SQL Server方式,所以我们需要先开启这种验证方式,然后再根据需要添加项目用户,设定相关权限。

先用Windows身份验证方式连接数据库,然后按照如下几步设置,完成后重启服务,切换验证方式即可使用sa登录。

 

  作者:Jeremy.Wu
  出处:https://www.cnblogs.com/jeremywucnblog/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

SQL Server中Linked Server及Remote Server的使用示例

SQL Server中Linked Server及Remote Server的使用示例

设置SERVER:

一、在Client Network Utility中添加目标服务器的联接

二、打开ENTERPRISE manger,展开源服务器的Security,在Remote ServerS上单击右键,单击弹出菜单中的NEW Remote Server

三、在Remote Server PROPERTIES窗口中,输入Server Name,选中RPC,REMOTE LOGIN MAPPING可以用默认值,然后单击确定

四、同样的方法设置目标服务器

 

使用

对于Remote Server 上的表和过程用一般的过程和表的使用方法即可,不过在表和过程名前要加上SERVER NAME


---- 来自jb51.cc 
select * from remoteserver.databasename.dbo.tablename

exec remoteserver.databasename..sp_test @cs1,@cs2,@cs3 output

在两台同样装有NT4+SP5,MSsql7+SP1的服务器上测试成功。

Remote Server,虽说使用起来很方便,但是只能在MSsql之间使用,如果要将sql7同sql 6.5联接应该怎么?或者用sql7同ORACLE或SYSBASE联接应该怎么办呢?这就需要用到Linked Server。

 

今天先说一下sql7之间使用Linked Server的方法:  

一、在源服务器的Client Network Utility中添加目标服务器的联接

二、打开ENTERPRISE manger,展开源服务器的Security,在Linked ServerS上单击右键,单击弹出菜单中的NEW Linked Server

三、在Linked Server PROPERTIES窗口中,在Linked Server框输入目标服务器名(在CLIENT NETWORK UTILITY中的服务器名),在SERVER部分选中sql Server,在SERVER OPTIONS中根据选中RPC和RPC OUT

四、切换到安全(Security),根据实际设置。(我一般选择“They WILL BE MAPPED TO”,然后输入帐号和口令)

五、单击确定完成设置

需要说明的是,在使用时同Remote Server有点不同,用Remote Server可以省略CATALOG(DBO),但使用Linked Server时却不能省略,当时我在试时就因为这个问题耽误了不少时间。

以上在WIN98+sql7 DESKTOP同NT4+SP5+sql7之间测试成功

 

曾因工作的原因,在别人的督促之下,试了sql 7同ORACLE联接,在sql7中直接访问ORACLE的数据库方法,下面将该方法简单说一下。

当时用的是Linked Server直接联接对方数据库。

一、先在sql服务器装上ORACLE的客户端,并设置好

二、然后打开ENTERPRISE manger,与昨天相同的方法进到添加Linked Server窗口

三、在Linked Server框输入要使用的服务器名,服务器名允许按命名规则任意命名,但不能与已有的Remote Server或Linked Server重名。

四、在SERVER区选中“OTHER DATA SOURCE”

五、Provider name选择“Microsoft OLE DB Provider for Oracle”

六、在Product name处输入“Oracle”

七、在Data source处输入在Oracle客户端程序中设置的服务器名

八、在Provider处输入“MSDAORA” 注:用ORACLE就是这个,不能改

九、在Server opentions区选择“RPC”和“RPC OUT”

十、再切换到安全(Security),根据实际设置。(我都是选择“They WILL BE MAPPED TO”,然后输入帐号和口令)

十一、单击确定完成设置

我按这个步骤设置成功,但因时间和条件的问题,一直没再继续试其它的设置,如果各位那位有这样的条件的话,请再试一下其它的选项,看有什么不同,试完希望能将步骤和结果给我发一份。

另需说明的是,这种的联接的稳定性还是可以的,在设好以后的一年中,只因为对方服务器出问题重设了一次,还有一次是ORACLE的客户端被管理员不小心删了个文件,又重设了一次,然后一直没出问题,并且速度也还可以,一个过程,在ORACLE客户端执行需要0.1秒钟,通过Linked Server执行需要0.2秒钟左右。 

明天给大家写一下上面同样的设置用sql7的系统过程设置的方法。

以上在UNIX+ORACLE7和NT4+SP5+sql7上测试成功。

SQL Server在本地计算机上用SSMS(SQL Server Management Studio)登录不上,错误消息:(Microsoft SQL Server, Error: 18456)

SQL Server在本地计算机上用SSMS(SQL Server Management Studio)登录不上,错误消息:(Microsoft SQL Server, Error: 18456)

今天遇到了一个奇怪的问题,公司目前在SQL Server上都采用AD域账号登录,由于账号人数众多,所以我们建立了一个AD Group(域组),将大家的AD账号加入了这个AD Group,然后我们将这个AD Group设置为了SQL Server的账号。按道理说所有在这个AD Group的AD账号都应该可以用SSMS的Windows认证登录SQL Server才对,但是奇怪的事情发生了,所有同事的AD账号都能够在SQL Server所在服务器的远程桌面上用SSMS登录SQL Server(Windows认证),但是在自己的电脑上使用SSMS登录SQL Server(Windows认证)都报错,错误如下:

Login failed for user ''AD\XXX''. (Microsoft SQL Server, Error: 18456)

其中的''AD\XXX''是AD域账号。

但是奇怪的是我将大伙的AD账号而不是AD Group设置为SQL Server账号后,大伙在自己的电脑上又可以用Windows认证登录SQL Server了,但是如果SQL Server账号是AD Group,死活都不行。这时候我在想为什么将AD账号设置为SQL Server账号后可以,但是AD Group设置为SQL Server账号后就不行?后来我发现数据库服务器上SQL Server服务的执行账号居然用的是NT Service账号,如下所示:

我在想是不是因为NT Service账号权限不够,没法访问AD域服务器的AD Group信息,所以导致大伙在自己的电脑上使用Windows认证登录SQL Server失败?

因此我将上图的SQL Server服务的执行账号更换为了一个AD账号,并且该AD账号在数据库服务器的administrators组里面

然后重启SQL Server服务,还是将AD Group设置为SQL Server账号,让大家在自己电脑上还是通过SSMS用Windows认证登录SQL Server,结果大家现在都能登录上了!所以SQL Server在安装时的默认执行账号NT Service并不是万能的,像本文描述的情况就需要更改SQL Server服务的执行账户为一个AD账户,并且将其放在数据库服务器的administrators组里面。

 

顺便说一下,刚更改SQL Server服务的执行账户后,大伙登录可能会报下面一个错误,怀疑是SQL Server还没和AD域服务器同步,过了五分钟再登录这个错误就消失了,大家在自己的电脑上成功登录了SQL Server

The target principal name is incorrect.  Cannot generate SSPI context. (Microsoft SQL Server, Error: 0)

 

sql-server – SQL Server 2005:SQL Server身份验证的安全性如何?

sql-server – SQL Server 2005:SQL Server身份验证的安全性如何?

如果您使用sql Server身份验证(2005),是否通过网络以明文形式发送登录详细信息?

解决方法

尽你所能安全……

您可以非常轻松地配置SSL,如果您没有受信任的证书,如果您强制加密,sql Server可以创建/发布它自己的自签名证书供您使用… from this write-up

Credentials (in the login packet) that are transmitted when a client application connects to sql Server are always encrypted. sql Server will use a certificate from a trusted certification authority if available. If a trusted certificate is not installed,sql Server will generate a self-signed certificate when the instance is started,and use the self-signed certificate to encrypt the credentials. This self-signed certificate helps increase security but it does not provide protection against identity spoofing by the server. If the self-signed certificate is used,and the value of the ForceEncryption option is set to Yes,all data transmitted across a network between sql Server and the client application will be encrypted using the self-signed certificate

今天的关于sql-server – 使用SMO重新启动SQL Server实例如何重新启动sql server的分享已经结束,谢谢您的关注,如果想了解更多关于SQL Server - SQL Server 2019 启用SQL Server验证Super Administrator(sa)用户登录、SQL Server中Linked Server及Remote Server的使用示例、SQL Server在本地计算机上用SSMS(SQL Server Management Studio)登录不上,错误消息:(Microsoft SQL Server, Error: 18456)、sql-server – SQL Server 2005:SQL Server身份验证的安全性如何?的相关知识,请在本站进行查询。

本文标签: