sqlserver的服务、实例名、验证模式的区分 sqlserver默认实例名

sqlserver的服务、实例名、验证模式的区分 sqlserver默认实例名

转载请注明出处,谢谢!

最近在学习sqlserver时,鹏叔对以下名词不是特别理解,于是在网上查找资料,无奈无良装懂的网友太多,将以下几个名词乱用并错误理解,于是越查越糊涂。只好查看官网的帮助文档,并亲自设置。最终理解,并将区别及容易产生错误理解的地方加以解释。名词如下:

sqlserver服务、sql server服务实例、服务器、数据库、登录身份(账户)、身份验证(用户名、密码);

1.sql server服务:

 实质是安装sql server后运行的进程与一部分文件。sql server可以提供很多服务,如:数据库引擎(sql server)、报表服务(reporting services)、分析服务(analysis services)等,每种服务都有自己的一套独有的系统资源。你可以选择性的安装需要的服务,不同版本的sql server提供的服务会不同。商业版会全部提供,其他版只提供部分。
如果你想要编写的程序能访问你的数据库文件,就要启动某个服务,即启动一个进程,这个进程一直等待你编写的程序向他发送请求和数据。我们编写程序中,会用到微软提供的ADO接口,这些接口中就很好的封装了与sql server服务进行交互的接口。运行的进程通过参数,去操作数据库,然后返回结果。

2.sqlserver服务实例:

 服务实例是相对于sql server的版本来说的。比如,你的计算机上是可以同时安装sql server的2000版和2005版。每个版本都提供自己的数据库引擎服务、报表服务等各种服务,不同版本中的相同服务可能会使用共同的一部分硬件及文件资源。那么,每个服务,连同其使用的硬件、文件资源,称为一个服务实例。
服务实例可以在windows服务的列表中查看,两种方式找到:
·右键“我的电脑”——管理——服务和应用程序——服务,找到以sql 开头的服务,其名称后的括号内,为服务名;
·开始——运行,输入“services.msc”,打开了服务窗口;

3.sqlserver服务实例名:

不同版本的sql server中的相同实例,我们该怎么区分呢?这时就用到了实例名。
系统上安装第一个sql server时,安装提示中一般会使用默认的方式来指定实例名,此时的实例名即“默认实例名”,默认实例名为 MSSQLSERVER,它不需要客户端指定实例名称即可建立连接。所有类型服务的默认实例名,都是“MSSQLSERVER”。
再安装一个版本的sql server时,安装程序在检查了你的系统环境后,会提示你指定服务实例名,以跟默认实例名进行区分,即“命名实例名”。命名规则可参看网上资料。
一台计算机上最多只有一个默认实例,也可以没有默认实例,所以,第一个安装的sql server不是必须要指定为默认实例名的,也可以为其指定命名实例名。安装下一个版本时,再指定为默认,或者仍为为命名实例。
编程的连接语句中,如果是默认实例名,则在指定远程服务器的地址字段值上,只需指定其IP地址即可,不需要指定默认实例名;如果是命名实例,在指定此字段值为“IP地址命名实例名”。

4.服务器:

服务器其实指的是硬件和系统,即你的计算机的硬件和操作系统是否能够提供服务器的基础,如果能够,相应的软件如sql server才能安装并运行各种服务。

5.数据库:

数据库指的只是硬盘上的数据文件。

6.登录身份(账户):

此项会在安装时,提示你进行设置,一般设置为local system。
登录身份,是指你的sql server某一个服务启动时使用的windows操作系统的身份。从上面我们知道,sql server服务会调用我们的硬件、系统及其他一些资源,有一些部分是系统比较保密的部分,我们不希望所有访问服务器的人来操作,从而需要设置服务的登录身份。Windows xp系统中内嵌了三个身份,其中有local system,每个身份对操作系统都有不同的权限,对sql服务设置登录身份,就可以限制服务的权限了。如果需要设置为“本账户”,则需要在“资源管理器”中先添加一个windows账户,再在sql server的配置管理器中,对某个服务的属性中的登录身份进行修改,还要指定正确的账户名、密码;
此项设置,只有服务器端的维护人员需要考虑,对于编写客户端的人员来说,是不需考虑的。

7.sqlserver身份验证:

在打开sql server management studio(SSMS)时,会弹出对话框让你指定登录sql server的身份验证方式和用户名、密码。
这里的身份验证,是为了让你进入sql server服务,然后访问或修改数据库、或使用其他服务进行相应作业的。与使用SSMS登录类似,在编程中,是通过指定服务器IP服务实例名(默认实例名不用指定)、身份验证方式、登录名、密码、数据库文件等信息,来进入sql server的服务,SSMS只是给数据库管理员或程序员提供了一个图形化的操作界面,方便操作。
在安装sql server时,会有提示让你至少添加一个sql server的管理员。管理员的作用就是进入数据库服务,然后对数据库进行操作、对其他账号的权限进行设置、管理各种服务、协议等。若按默认操作(windows身份验证模式),则sql server会将当前的windows账户及其密码作为windows验证模式的内嵌登录名(BUILTINAdministrators)和密码,从而在使用windows验证模式时,不需要指定登录名和密码。当然,在此也可以指定其他的windows账户作为windows验证模式的内嵌登录名,按照提示修改即可。Windows验证模式只允许以windows验证模式进行连接,即便SSMS中可以选择sql server模式,但会导致连接失败。
如果安装时选择“混合模式”,则必须指定sa登录名的密码,从而添加了一个sql server身份验证的登录名。
那么对于SSMS的“连接到服务器”窗口和编程时指定的连接字符串,无论sql server指定为什么模式,windows验证模式是公有的。此时,如果我们指定为“windows验证”,则sql server将当前windows账户与sql server中已认证的windows账户对比,若当前账户没有认证,则连接失败。
怎样在sql server中添加一个windows验证的windows账户呢?首先,你必须在xp系统的用户账户中,添加一个账户。然后,在administrater账户下,用SSMS在windows验证模式下,连接到数据库服务,然后在“对象资源管理器”下的“安全性”——登录名,点右键,然后在其中添加登录名。登录名要找到刚才添加的windows账户,验证模式采用windows验证模式。此时你用刚添加的windows账户登录系统,然后运行sql server,就可以在windows验证模式下正常连接了。
而用sql server验证模式时,只要当前登录名在sql server中验证了,不会有windows账户的限制。
有两种身份验证的原因这里不深入分析,大体上是考虑到安全性和操作的方便程度及sql server的版本向后兼容。这里只说这两种验证方式是用上的不同:
在ADO编程中,当使用windows身份验证方式时,只需要指定服务器的IP地址。这是因为,指定IP地址,就可以连接到服务器计算机。如果使用sql server身份验证模式,则必须要指定登录名和密码了。
常见的理解误区:很多人会觉得,windows验证模式和sql server验证模式的登录名,区别在于权限,这是错误的。这两种验证方式的区别,并不是在于权限。并没有谁的权限高、谁的权限低之说。不管是windows验证方式的默认登录名、sql server方式的sa或其他自己添加的登录名,只要在sql server中为该登录名设置了相应数据库及表的权限,他就具有对于操作权限。

补充资料(非本人观点):

1.对两种身份验证模式的区别的一种说法:

那么区别在于,一个使用SQL单独用户,一个使用Windows用户,使用Windows用户可以极大的方便管理员的管理,统一用户身份验证(一般使用活动目录用户,在实践环境中,一般企业都会有自己的活动目录,如果使用SQL用户的话,管理员则需要记忆和维护两套用户名及密码,在这种情况下就会使用Windows用户,SQL可以直接调用Windows用户并授予数据库及表相关权限。那么在有权限的情况下,管理员可以直接使用自己的域用户来登陆连接SQL数据库)

2.两个验证方式是有明显不同的:主要集中在信任连接和非信任连接。

windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql server仅根据用户的windows权限来进行身份验证,我们称为“信任连接”,但是在远程连接的时候会因NTML验证的缘故,无法登陆。
混合模式验证就比较复杂,当本地用户访问sql时候采用windows身份验证建立信任连接,当远程用户访问时由于未通过windows认证,而进行sql server认证(使用sa的用户也可以登录sql),建立“非信任连接”,从而使得远程用户也可以登录。
准确来说,混合身份验证模式,也就是基于Windows身份验证和SQL Server身份混合验证。在这个模式中,系统会判断账号在Windows操作系统下是否可信,对于可信连接,系统直接采用Windows身份验证机制,而非可信连接,这个连接不仅包括远程用户还包括本地用户,SQL Server 会自动通过账户的存在性和密码的匹配来进行验证。

3.MS网站上的资料:

SQL Server 中的身份验证 (ADO.NET)

SQL Server 支持两种身份验证模式,Windows 身份验证模式和混合模式。

·Windows 身份验证是默认模式(通常称为集成安全),因为此 SQL Server 安全模型与 Windows 高度集成。信任特定Windows 用户和组帐户登录 SQL Server。已经过身份验证的Windows 用户不必提供附加的凭据。

·混合模式支持通过 Windows 和 SQL Server 进行的身份验证。用户名和密码对保留在SQL Server 中。

安全说明

我们建议尽可能使用 Windows 身份验证。Windows 身份验证使用一系列加密消息验证 SQL Server 中的用户。使用SQL Server 登录时,会通过网络传递 SQL Server 登录名和密码,这样会降低它们的安全性。

使用 Windows 身份验证,已经登录到 Windows 的用户不必再单独登录到 SQL Server。下面的SqlConnection.ConnectionString可指定Windows 身份验证,而无需用户名或密码。

"Server=MSSQL1;Database=AdventureWorks;IntegratedSecurity=true;

注意

登录名与数据库用户名不同。您必须通过单独的操作将登录或Windows 组映射到数据库用户或角色。然后向用户或角色授予访问数据库对象的权限。

身份验证方案

在下列情形中,Windows 身份验证通常为最佳选择:

·存在域控制器。

·应用程序和数据库位于同一台计算机上。

·您正在使用 SQL Server Express 的实例。

SQL Server 登录常常在以下情况中使用:

·您有工作组。

·用户从其他不受信任的域进行连接。

·Internet 应用程序(例如 ASP.NET)。

注意

指定 Windows 身份验证不会禁用 SQL Server 登录。使用ALTER LOGIN DISABLE Transact-SQL语句会禁用具有高特权的 SQL Server 登录。

登录类型

SQL Server 2000 支持三种登录类型:

·本地 Windows 用户帐户或受信任的域帐户。SQL Server 依赖 Windows 来对 Windows 用户帐户进行身份验证。

·Windows 组。向Windows 组授予访问权限会向作为该组的成员的所有 Windows 用户登录授予访问权限。

·SQL Server 登录。SQL Server 将用户名和密码的哈希形式都存储在 master 数据库中,使用内部身份验证方法验证尝试的登录。

注意

SQL Server 2005 添加从证书或非对称密钥创建的登录名,仅用于代码签名。但无法使用这些登录名连接到SQL Server。

混合模式身份验证

如果您必须使用混合模式身份验证,则必须创建 SQL Server 登录名,将其存储在 SQL Server 中。然后必须在运行时提供SQL Server 用户名和密码。

安全说明

SQL Server 使用名为sa(“系统管理员”的缩写)的SQL Server 登录进行安装。为sa登录分配一个强密码,并且不要在应用程序中使用sa登录。sa登录名会映射到sysadmin固定服务器角色,它对整个服务器有不能撤销的管理凭据。如果攻击者以系统管理员的身份获取了访问权限,则可能造成的危害是无法预计的。默认情况下,WindowsBUILTINAdministrators组(本地管理员组)的所有成员均为sysadmin角色的成员,但可以从该角色中移除这些成员。

SQL Server 2005 为在 Windows Server 2003 或更高版本上运行的 SQL Server 登录引入了 Windows 密码策略机制。密码复杂性策略通过增加可能密码的数量来阻止强力攻击。SQL Server 2005可将 Windows Server 2003 中使用的相同的复杂性和到期策略应用到 SQL Server 中使用的密码。

安全说明

连接来自用户输入的连接字符串会使您遭受连接字符串注入攻击。可使用SqlConnectionStringBuilder在运行时创建语法构成有效的连接字符串。有关更多信息,请参见连接字符串生成器 (ADO.NET)。

4.相关网站

http://technet.microsoft.com/zh-cn/magazine/default.aspx
http://technet.microsoft.com/zh-cn/sqlserver/

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/94318.html

更多阅读

刑法:刑事犯罪中连续犯与继续犯的区分

刑事犯罪中连续犯与继续犯的区分作者:卢铁亮 中国法制新闻网 2011-8-9     案例:    一、无业青年李某因好吃懒做,又想有钱花。某天其见一女儿独自走在偏僻的小巷子,遂持刀上前准备抢劫。其在该女子身上抢得一部手机和少数现

声明:《sqlserver的服务、实例名、验证模式的区分 sqlserver默认实例名》为网友柔花似纱分享!如侵犯到您的合法权益请联系我们删除