mssql sqlserver 登录名及用户名的不同点


摘要:
下文主要讲述sqlserver登录名和用户名的区别



登录名及用户名的概述

为了更好的控制数据库和数据库服务器的权限,sqlserver推出了登录名和用户名两种概念。
登录sqlserver服务器需使用登录名,而管理sqlserver数据库权限需使用用户名
——————————————–
功能:
登录名:可以理解为登录sqlserver的账户
用户名:可以理解为登录sqlserver中指定数据库的账户
——————————————–

数据库的登录流程,先使用登录名登入sqlserver,然后再使用映射的用户名访问相应的数据库,如果没有任何用户映射信息,则使用guest用户名访问相应的数据库。
只有登录名,采用密码
用户名是没有密码的
用户登录sqlserver采用的是”登录名”
sqlserver中,可以通过设置用户名对用的的数据库权限,来达到用户名对控制数据库的操作权限
sqlserver通过登录名映射至用户名,继承相应的权限,来达到登录名的权限控制

——————————————-
存放位置:
登录名:存放在master数据库下syslogins表中
用户名:存放于具体的数据库下,如下图所示:
mssql_sqlserver_登录名用户名区别

mssql_sqlserver_登录名用户名区别


——————————————–
一个登录名可以和多个用户名进行映射
一个用户名只能同一个登录名进行映射



登录名及用户名的创建方法

  /*创建登录名 sa 及密码信息 */
  CREATE LOGIN [sa] WITH PASSWORD=N' FI¡»„øÀ9Áþ̉üS¤Cɘ䘈''àh’l„',
 DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[简体中文], 
 CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
---添加登录名至相应的角色
EXEC sys.sp_addsrvrolemember @loginame = N'sa', @rolename = N'sysadmin'
GO

/*创建用户dbo 映射至登录名 [user-PC\user] */
CREATE USER [dbo] FOR LOGIN [user-PC\user] WITH DEFAULT_SCHEMA=[dbo]
GO