SQL Server 中的登录名与用户名有什么区别和联系?

如题所述

区别:

登录名是服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中

用户名是一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。

联系:用户名当权限足够的时候也可以算是登录名。一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。

好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库,登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙,一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。

扩展资料:

作用

用户名主要用来对应各个库的权限,登录名用来对于实例的登陆权限。

例如:

同一台服务器上,实例A有这个登录名而实例B没有,可以登陆实例A。

而用户在每个库下,需要把用户和登录名进行对应。

例如:现在是职员,那你登陆进去以后,你是职员的角色,只能做份内的操作。































































































































































































































































































































































































































































































































现在你升职了,你是经理了,只需要修改你的登录名和用户的映射,你就可以获取不同的权限。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-13

联系如下:

登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙。这里所说的大楼就是sql server服务器,而房间就是这个sql server服务器中的具体的库。

区别如下:

1、映射关系不同

一个登录名可以和多个不同库下的用户做映射。

在同一个库下只能和一个用户做映射,并且一个用户名可以和多个登录名有映射关系,。

2、权限不同

真正有权限的是用户名,登录名只有登进数据库的功能,然后去找映射的用户名,这样就有了相应的权限。

扩展资料:

在SQL Server中,用户和角色是分为服务器级别和数据库级别的。

服务器级别:

登录名:指有权限登录到某服务器的用户,例如超级管理员的登录名是sa;

服务器角色:为帮助您管理服务器上的权限,SQL Server 提供了若干角色,这些角色是用于对其他主体进行分组的安全主体。 服务器级角色的权限作用域为服务器范围。

数据库级别:

用户:指有权限能操作数据库的用户;

数据库级别设置:

服务器级 -> 数据库级 -> 架构级 - > 数据对象级,比如说:Server.DataBase1.dbo.Table1;这里的意思就是Table1这个表属于dbo这个架构,dbo这个架构属于DataBase1这个数据库,DataBase1这个数据库属于Server这个服务器。

里面的架构其实就是一个容器,好像就是面向对象里面的命名空间,一个用户可以拥有多个架构,但是不能对没有拥有的架构进行操作。

一个数据库角色,是对不同架构里面数据对象的权限组织,也有可能涉及到多个架构,当某一个用户被转换成一种数据库角色的时候,假如这个用户本身不拥有某一个架 构而该数据库角色拥有,那它当它对那个架构进行操作的时候就会出错。

本回答被网友采纳
第2个回答  推荐于2017-09-18

    登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中

    用户名:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。

    SQLSERVER把登录名与用户名的关系称为映射。用登录名登录SQLSERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名关联的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库

    一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。

    链接或登录Sql Server服务器时是用的登录名而非用户名登录的,程序里面的链接字符串中的用户名也是指登录名

    我们常见的dbo(用户名)是指以sa(登录名)或windows   administration(Windows集成验证登录方式)登录的用户,也就是说数据库管理员在SQLSERVER中的用户名就叫dbo,而不叫 sa,这一点看起来有点蹊跷,因为通常用户名与登录名相同(不是强制相同,但为了一目了然通常都在创建用户名时使用与登录名相同的名字),例如创建了一个登录名称为me,那么可以为该登录名me在指定的数据库中添加一个同名用户,使登录名me能够访问该数据库中的数据.当在数据库中添加了一个用户me 后,之后以me登录名登录时在该数据库中创建的一切对象(表,函数,存储过程等)的所有者都为me,如me.table1,me.fn_test(),而不是dbo.table1,dbo.fn_test().

    SQL Server中还有一个特殊的数据库角色public,它存在于每一个数据库中,包括系统数据库,如master、msdb、model和用户数据库,数据库的所有用户都属于public角色,并且不能从public角色中删除。

第3个回答  2013-07-11
登录名是进入数据库时用的名字啊···主要是进行管理数据库的···
用户名···当权限足够的时候也可以算是登录名哦···也指连入数据库的用户端的名字哦
第4个回答  2013-07-11
数据库用户名?
delete * from table where 用户登录名 = '用户名' --(不知道你是不是要数据库用户名)
like 数据库用户名='数据库名' --不过提醒表中没有数据库名,除非系统表中