区别:
登录名是服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中
用户名是一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。
联系:用户名当权限足够的时候也可以算是登录名。一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。
好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库,登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙,一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。
作用
用户名主要用来对应各个库的权限,登录名用来对于实例的登陆权限。
例如:
同一台服务器上,实例A有这个登录名而实例B没有,可以登陆实例A。
而用户在每个库下,需要把用户和登录名进行对应。
例如:现在是职员,那你登陆进去以后,你是职员的角色,只能做份内的操作。
现在你升职了,你是经理了,只需要修改你的登录名和用户的映射,你就可以获取不同的权限。
联系如下:
登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙。这里所说的大楼就是sql server服务器,而房间就是这个sql server服务器中的具体的库。
区别如下:
1、映射关系不同
一个登录名可以和多个不同库下的用户做映射。
在同一个库下只能和一个用户做映射,并且一个用户名可以和多个登录名有映射关系,。
2、权限不同
真正有权限的是用户名,登录名只有登进数据库的功能,然后去找映射的用户名,这样就有了相应的权限。
扩展资料:
在SQL Server中,用户和角色是分为服务器级别和数据库级别的。
服务器级别:
登录名:指有权限登录到某服务器的用户,例如超级管理员的登录名是sa;
服务器角色:为帮助您管理服务器上的权限,SQL Server 提供了若干角色,这些角色是用于对其他主体进行分组的安全主体。 服务器级角色的权限作用域为服务器范围。
数据库级别:
用户:指有权限能操作数据库的用户;
数据库级别设置:
服务器级 -> 数据库级 -> 架构级 - > 数据对象级,比如说:Server.DataBase1.dbo.Table1;这里的意思就是Table1这个表属于dbo这个架构,dbo这个架构属于DataBase1这个数据库,DataBase1这个数据库属于Server这个服务器。
里面的架构其实就是一个容器,好像就是面向对象里面的命名空间,一个用户可以拥有多个架构,但是不能对没有拥有的架构进行操作。
一个数据库角色,是对不同架构里面数据对象的权限组织,也有可能涉及到多个架构,当某一个用户被转换成一种数据库角色的时候,假如这个用户本身不拥有某一个架 构而该数据库角色拥有,那它当它对那个架构进行操作的时候就会出错。
本回答被网友采纳登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在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角色中删除。