【数据库】浅析登录名与用户的联系

前言:当我们学到“数据库安全性控制”这章时,会遇到登录名与用户这两个概念。如果没有理清楚,那么在SQL Server 软件中会不知如何下手。本篇文章就是来浅析他们之间的关系以及再该软件中如何创建。

一、登录名

我们登陆SQL Server软件时,会出现连接到服务器。通常我们是默认Windows 身份验证直接登陆的。
在这里插入图片描述
但是我们要用SQL Server 身份验证登陆的话,就需要登陆名和密码才能登陆了。
在这里插入图片描述
那么,什么是登录名?
就是一个账号密码可以登陆SQL Server软件。
比如,系统通常默认一个sa,就是登录名,它拥有所有权限。
但是,新创建的登录名只能连接进去,没有任何权限。
如何创建登录名?
通过Windows 身份验证默认登陆进去,或者SQL Server身份验证sa登录名登陆进去。

  1. 可视化向导创建登录名
    在这里插入图片描述

在这里插入图片描述
2. SQL 语法创建登录名
CREATE LOGIN 登录名 WITH PASSWORD=‘密码’,
DEFAULT_DATABASE= 数据库名
例如:

CREATE LOGIN David WITH PASSWORD='123456',
DEFAULT_DATABASE= TPCH

二、用户

在这里插入图片描述
通过图片我们可以看到,有两个安全性,一个是总数据库的安全性,另一个是具体某个数据库的安全性;具体某个数据库里的安全性才有用户。
那么,什么是用户?
我们可以这样理解,用户就是可以登陆某个数据库的账号。比如,登录名就是登陆总数据库的账号。
但是,他们之间是有区别和联系的。
如果我们用新建的登录名连接进去,正常情况下是查看不了某个数据库的。
为什么?
因为没有给登录名创建用户。只有该登录名下有用户,才能够查看具体数据库。至于能看到具体数据库什么内容,这里就要涉及到权限和角色了。
所以,先有登录名,才有用户;用户是在登陆名下的。
注意:
通常情况下,新建的登录名下只能创建一个用户,再创建就会报错。
如何创建用户?

  1. 可视化向导创建用户
    在这里插入图片描述
    在这里插入图片描述
  2. SQL 语法创建用户
    CREATE USER 用户名 FOR LOGIN 登录名 WITH DEFAULT_SCHEMA=模式名
    例如:
CREATE USER David FOR LOGIN David WITH DEFAULT_SCHEMA=dbo

总结:

先有登录名,再有用户。
登录名是有账号密码的,而用户没有。
登录名是用来连接到服务器的,而用户是用来访问具体某个数据库的。
登录名进去可以查看什么数据库,就需要通过用户来去访问;具体能访问到什么数据库就要看用户的权限。
登录名跟用户的名称可以一致。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章