浅谈SQL Server 2005中两种用户认证方式

数据库 SQL Server
很多数据库管理员对SQL Server 2005里的用户的概念不是很清楚,本文将从作者的角度来进行阐述,希望大家看完后能明白用户的概念。

笔者一直对SQL Server 2005里的用户的概念不是很清楚,如果你和我当初一样,认为下面的两个用户是一个概念,那就有必要点上一根烟,喝上一品茶,细细品味一下这之间的不同了。

 

左边的图标出了一个可以访问AdventureWorks数据库的用户,而右边的图则标出了整个数据库服务器所有的“用户”。

大家知道,SQL Server 2005有两种用户的认证方式: Windows和Windows与SQL的混合认证。 对于Windows认证大家应该比较熟悉, 在这里不多说了。 只强调一点,如果能用Windows认证就尽量用,因为相对SQL认证,Windows认证还是会更安全一些。所以它也是SQL SERVER 2005的默认方式。下面主要是谈一下SQL认证中用户的一些问题。

当采用SQL认证进行开发的时候,我们经常会准备一个数据库连接串:

Data Source=ServerName; Initial Catalog=DatabaseName; User ID=Pumpkin; Password=!@#$%^&*

注意这里的Pumpkin,以前我一直都以为这就是SQL SERVER里的用户,但是通过搞一搞之后才发现并非如此。 数据库连接串里的Pumpkin,在SQL SERVER里严格的说,应该叫Login,其实它是一个登录帐号,并不是数据库里用来访问表和操作数据的一个用户。即右图中的Pumpkin。它在数据服务器的Security"Logins的结点下,这里面列出来的是所有的登录帐号。它们的作用就是用来连接数据库并通过验证。

有了这个帐号之后,其实我们除了登录进来之外,其它还是什么都做不了。如果想要访问数据库服务器中的某个数据库的数据,还要建立一个USER并给它一个访问数据表的权限。而这个用户则是左图中的那个Pumpkin。

请注意,我们刚看出了关键的问题所在:访问表的用户其实必须是USER Pumpkin,不是那个LOGIN Pumpkin。所以说,在SQL SERVER 2005中,如果要访问某张表,那首先需要建立一个USER,并赋给它访问的权限。同时,要注意USER与LOGIN的关系是一对一的,即某个USER 在一定时间内只对应着***一个LOGIN。

如果大家还是很困惑,那就来看一看如何时用SQL语句来创建这些用户的:

◆创建一个Login

Code
CREATE LOGIN Pumpkin WITH PASSWORD=’!@#$%^&’

◆创建一个User

Code
CREATE USER Pumpkin FROM LOGIN Pumpkin


从SQL中应该可以看得很清楚,用户其实基于登录帐号创建的。我们双击右图的Pumpkin,就可以看到它们的关系了。

 

【编辑推荐】

  1. 优化MySQL插入方法的五个妙招
  2. LINQ to SQL实现数据访问通用基类
  3. 详解SQL Server 2005四种排名函数
责任编辑:彭凡 来源: 博客园
相关推荐

2010-10-21 16:38:27

sql server文

2010-10-21 16:24:18

sql server升

2010-10-20 15:48:56

SQL Server许

2010-11-12 11:48:15

2010-11-24 08:54:33

2023-03-29 13:06:36

2010-07-13 15:39:23

SQL Server

2024-02-04 09:24:45

MyBatisSQL语句Spring

2015-10-09 09:51:29

Web API认证

2010-06-30 13:07:17

SQL Server函

2020-05-11 13:03:03

SR-TEIP路由器

2011-03-03 10:26:04

Pureftpd

2010-09-07 11:09:59

2010-03-16 15:23:32

java动态载入

2011-03-21 13:44:38

SQL ServerSQL Server2分页

2011-08-08 14:13:47

iPhone XML NSXMLParse

2009-07-06 17:46:41

JSP网站

2010-08-06 09:38:11

Flex读取XML

2010-04-20 15:32:20

主控负载均衡

2009-06-23 18:18:13

SpringHibernate
点赞
收藏

51CTO技术栈公众号